// Path: app/src/main/java/com/cxsj/runhdu/utils/ActivityManager.java
// public class ActivityManager {
// 
//     private static String TAG = "ActivityManager";
//     private static List<Activity> activities = new ArrayList<>();
// 
//     public static void addActivity(Activity activity) {
//         Log.d(TAG, "addActivity: "+activity.getLocalClassName());
//         activities.add(activity);
//     }
// 
//     public static void removeActivity(Activity activity) {
//         if (activity != null) {
//             Log.d(TAG, "removeActivity: "+activity.getLocalClassName());
//             activities.remove(activity);
//         }
//     }
// 
//     public static void finishAll() {
//         for (Activity activity : activities) {
//             if (activity != null) {
//                 Log.d(TAG, "finishAll: " + activity.getLocalClassName());
//                 activity.finish();
//             }
//         }
//     }
// }
// 
// Path: app/src/main/java/com/cxsj/runhdu/utils/Prefs.java
// public class Prefs {
// 
//     private SharedPreferences prefs;
//     private SharedPreferences.Editor editor;
// 
//     public Prefs(Context context) {
//         prefs = PreferenceManager.getDefaultSharedPreferences(context);
//         editor = prefs.edit();
//     }
// 
//     public Prefs(Context context, String fileName) {
//         if (fileName == null) {
//             prefs = PreferenceManager.getDefaultSharedPreferences(context);
//         } else {
//             prefs = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
//         }
//         editor = prefs.edit();
//     }
// 
//     public void put(String key, Object object) {
//         if (object == null) {
//             return;
//         }
//         if (object instanceof Integer) {
//             editor.putInt(key, (Integer) object);
//         }
// 
//         if (object instanceof String) {
//             editor.putString(key, (String) object);
//         }
// 
//         if (object instanceof Boolean) {
//             editor.putBoolean(key, (Boolean) object);
//         }
//         editor.apply();
//     }
// 
//     public Object get(String key, Object defaultValue) {
//         if (defaultValue instanceof Integer) {
//             return prefs.getInt(key, (int) defaultValue);
//         }
// 
//         if (defaultValue instanceof String || defaultValue == null) {
//             return prefs.getString(key, (String) defaultValue);
//         }
// 
//         if (defaultValue instanceof Boolean) {
//             return prefs.getBoolean(key, (Boolean) defaultValue);
//         }
//         return null;
//     }
// }


import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.annotation.ColorRes;
import android.support.annotation.DimenRes;
import android.support.annotation.NonNull;
import android.support.annotation.StringRes;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import com.cxsj.runhdu.utils.ActivityManager;
import com.cxsj.runhdu.utils.Prefs;
import java.util.ArrayList;
import java.util.List;
package com.cxsj.runhdu;




/**
 * Created by Sail on 2017/4/13 0013.
 * 所有Activity的基类
 */

@SuppressLint("Registered")
public class BaseActivity extends AppCompatActivity {
    private ProgressDialog progressDialog;
    protected Prefs prefs;
    protected Prefs defaultPrefs;
    protected String username;
    protected boolean isSyncOn = true;
    protected final String TAG = "BaseActivity";
    protected PermissionCallback permissionCallback;

    protected interface PermissionCallback {
        void onGranted();

        void onDenied(List<String> permissions);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
// Path: app/src/main/java/com/cxsj/runhdu/utils/ActivityManager.java
// public class ActivityManager {
// 
//     private static String TAG = "ActivityManager";
//     private static List<Activity> activities = new ArrayList<>();
// 
//     public static void addActivity(Activity activity) {
//         Log.d(TAG, "addActivity: "+activity.getLocalClassName());
//         activities.add(activity);
//     }
// 
//     public static void removeActivity(Activity activity) {
//         if (activity != null) {
//             Log.d(TAG, "removeActivity: "+activity.getLocalClassName());
//             activities.remove(activity);
//         }
//     }
// 
//     public static void finishAll() {
//         for (Activity activity : activities) {
//             if (activity != null) {
//                 Log.d(TAG, "finishAll: " + activity.getLocalClassName());
//                 activity.finish();
//             }
//         }
//     }
// }
// 
// Path: app/src/main/java/com/cxsj/runhdu/utils/Prefs.java
// public class Prefs {
// 
//     private SharedPreferences prefs;
//     private SharedPreferences.Editor editor;
// 
//     public Prefs(Context context) {
//         prefs = PreferenceManager.getDefaultSharedPreferences(context);
//         editor = prefs.edit();
//     }
// 
//     public Prefs(Context context, String fileName) {
//         if (fileName == null) {
//             prefs = PreferenceManager.getDefaultSharedPreferences(context);
//         } else {
//             prefs = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
//         }
//         editor = prefs.edit();
//     }
// 
//     public void put(String key, Object object) {
//         if (object == null) {
//             return;
//         }
//         if (object instanceof Integer) {
//             editor.putInt(key, (Integer) object);
//         }
// 
//         if (object instanceof String) {
//             editor.putString(key, (String) object);
//         }
// 
//         if (object instanceof Boolean) {
//             editor.putBoolean(key, (Boolean) object);
//         }
//         editor.apply();
//     }
// 
//     public Object get(String key, Object defaultValue) {
//         if (defaultValue instanceof Integer) {
//             return prefs.getInt(key, (int) defaultValue);
//         }
// 
//         if (defaultValue instanceof String || defaultValue == null) {
//             return prefs.getString(key, (String) defaultValue);
//         }
// 
//         if (defaultValue instanceof Boolean) {
//             return prefs.getBoolean(key, (Boolean) defaultValue);
//         }
//         return null;
//     }
// }


// Path: app/src/main/java/com/cxsj/runhdu/BaseActivity.java
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.annotation.ColorRes;
import android.support.annotation.DimenRes;
import android.support.annotation.NonNull;
import android.support.annotation.StringRes;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import com.cxsj.runhdu.utils.ActivityManager;
import com.cxsj.runhdu.utils.Prefs;
import java.util.ArrayList;
import java.util.List;

package com.cxsj.runhdu;




/**
 * Created by Sail on 2017/4/13 0013.
 * 所有Activity的基类
 */

@SuppressLint("Registered")
public class BaseActivity extends AppCompatActivity {
    private ProgressDialog progressDialog;
    protected Prefs prefs;
    protected Prefs defaultPrefs;
    protected String username;
    protected boolean isSyncOn = true;
    protected final String TAG = "BaseActivity";
    protected PermissionCallback permissionCallback;

    protected interface PermissionCallback {
        void onGranted();

        void onDenied(List<String> permissions);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActivityManager.addActivity(this);