dagger migration
This commit is contained in:
parent
0e44a7cc51
commit
d9c47eaf88
|
@ -29,8 +29,8 @@ import android.os.BatteryManager;
|
|||
import android.text.TextUtils;
|
||||
|
||||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.util.Utils;
|
||||
import org.mariotaku.twidere.util.dagger.ApplicationModule;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.SimpleDateFormat;
|
||||
|
@ -114,7 +114,7 @@ public class HotMobiLogger {
|
|||
}
|
||||
|
||||
public static HotMobiLogger getInstance(Context context) {
|
||||
return ((TwidereApplication) context.getApplicationContext()).getHotMobiLogger();
|
||||
return ApplicationModule.get(context).getHotMobiLogger();
|
||||
}
|
||||
|
||||
public static LatLng getCachedLatLng(Context context) {
|
||||
|
|
|
@ -41,7 +41,6 @@ import org.mariotaku.twidere.BuildConfig;
|
|||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.activity.iface.IThemedActivity;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.util.ActivityTracker;
|
||||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler;
|
||||
import org.mariotaku.twidere.util.StrictModeUtils;
|
||||
|
@ -64,7 +63,8 @@ public abstract class BasePreferenceActivity extends AppCompatPreferenceActivity
|
|||
@ShapeStyle
|
||||
private int mProfileImageStyle;
|
||||
private String mCurrentThemeBackgroundOption;
|
||||
private KeyboardShortcutsHandler mKeyboardShortcutsHandler;
|
||||
@Inject
|
||||
protected KeyboardShortcutsHandler mKeyboardShortcutsHandler;
|
||||
private String mCurrentThemeFontFamily;
|
||||
@Inject
|
||||
protected ActivityTracker mActivityTracker;
|
||||
|
@ -166,7 +166,6 @@ public abstract class BasePreferenceActivity extends AppCompatPreferenceActivity
|
|||
setupWindow();
|
||||
super.onCreate(savedInstanceState);
|
||||
DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(this)).build().inject(this);
|
||||
mKeyboardShortcutsHandler = TwidereApplication.getInstance(this).getKeyboardShortcutsHandler();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -27,6 +27,7 @@ import android.support.annotation.NonNull;
|
|||
import org.mariotaku.twidere.BuildConfig;
|
||||
import org.mariotaku.twidere.activity.iface.IThemedActivity;
|
||||
import org.mariotaku.twidere.util.ActivityTracker;
|
||||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler;
|
||||
import org.mariotaku.twidere.util.StrictModeUtils;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.Utils;
|
||||
|
@ -46,6 +47,8 @@ public abstract class BaseThemedActivity extends Activity implements IThemedActi
|
|||
private int mProfileImageStyle;
|
||||
@Inject
|
||||
protected ActivityTracker mActivityTracker;
|
||||
@Inject
|
||||
protected KeyboardShortcutsHandler mKeyboardShortcutHandler;
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
|
|
|
@ -30,7 +30,6 @@ import android.widget.TextView;
|
|||
|
||||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler;
|
||||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler.KeyboardShortcutSpec;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
|
@ -43,7 +42,6 @@ public class KeyboardShortcutPreferenceCompatActivity extends BaseThemedActivity
|
|||
public static final String EXTRA_CONTEXT_TAG = "context_tag";
|
||||
public static final String EXTRA_KEY_ACTION = "key_action";
|
||||
|
||||
private KeyboardShortcutsHandler mKeyboardShortcutHandler;
|
||||
private TextView mKeysLabel, mConflictLabel;
|
||||
|
||||
private KeyboardShortcutSpec mKeySpec;
|
||||
|
@ -68,7 +66,6 @@ public class KeyboardShortcutPreferenceCompatActivity extends BaseThemedActivity
|
|||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
mKeyboardShortcutHandler = TwidereApplication.getInstance(this).getKeyboardShortcutsHandler();
|
||||
setContentView(R.layout.activity_keyboard_shortcut_input);
|
||||
setTitle(KeyboardShortcutsHandler.getActionLabel(this, getKeyAction()));
|
||||
|
||||
|
|
|
@ -122,8 +122,7 @@ public class SettingsWizardActivity extends Activity implements Constants {
|
|||
|
||||
public void gotoLastPage() {
|
||||
if (mViewPager == null || mAdapter == null) return;
|
||||
final int last = mAdapter.getCount() - 2;
|
||||
mViewPager.setCurrentItem(Math.max(last, 0));
|
||||
gotoPage(getPageCount() - 2);
|
||||
}
|
||||
|
||||
public void gotoNextPage() {
|
||||
|
@ -622,11 +621,20 @@ public class SettingsWizardActivity extends Activity implements Constants {
|
|||
|
||||
@Override
|
||||
protected void nextStep() {
|
||||
getActivity().gotoLastPage();
|
||||
final SettingsWizardActivity activity = getActivity();
|
||||
activity.gotoPage(activity.getPageCount() - 3);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void gotoPage(int page) {
|
||||
mViewPager.setCurrentItem(MathUtils.clamp(page, 0, getPageCount() - 1));
|
||||
}
|
||||
|
||||
private int getPageCount() {
|
||||
return mAdapter.getCount();
|
||||
}
|
||||
|
||||
static class InitialTabSettingsTask extends AbsInitialSettingsTask {
|
||||
|
||||
InitialTabSettingsTask(final SettingsWizardActivity activity) {
|
||||
|
|
|
@ -54,7 +54,8 @@ public class BaseAppCompatActivity extends ThemedAppCompatActivity implements Co
|
|||
KeyboardShortcutCallback {
|
||||
|
||||
// Utility classes
|
||||
private KeyboardShortcutsHandler mKeyboardShortcutsHandler;
|
||||
@Inject
|
||||
protected KeyboardShortcutsHandler mKeyboardShortcutsHandler;
|
||||
@Inject
|
||||
protected ActivityTracker mActivityTracker;
|
||||
@Inject
|
||||
|
@ -163,7 +164,6 @@ public class BaseAppCompatActivity extends ThemedAppCompatActivity implements Co
|
|||
protected void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(this)).build().inject(this);
|
||||
mKeyboardShortcutsHandler = TwidereApplication.getInstance(this).getKeyboardShortcutsHandler();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -45,6 +45,7 @@ import android.os.Bundle;
|
|||
import android.os.Parcelable;
|
||||
import android.provider.BaseColumns;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
|
@ -56,7 +57,6 @@ import android.support.v7.widget.ActionMenuView.OnMenuItemClickListener;
|
|||
import android.support.v7.widget.FixedLinearLayoutManager;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.support.v7.widget.RecyclerView.Adapter;
|
||||
import android.support.v7.widget.RecyclerView.ItemDecoration;
|
||||
import android.support.v7.widget.RecyclerView.State;
|
||||
import android.support.v7.widget.RecyclerView.ViewHolder;
|
||||
|
@ -96,8 +96,7 @@ import com.twitter.Extractor;
|
|||
|
||||
import org.mariotaku.dynamicgridview.DraggableArrayAdapter;
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.constant.SharedPreferenceConstants;
|
||||
import org.mariotaku.twidere.adapter.BaseRecyclerViewAdapter;
|
||||
import org.mariotaku.twidere.fragment.support.BaseSupportDialogFragment;
|
||||
import org.mariotaku.twidere.fragment.support.SupportProgressDialogFragment;
|
||||
import org.mariotaku.twidere.fragment.support.ViewStatusDialogFragment;
|
||||
|
@ -123,12 +122,11 @@ import org.mariotaku.twidere.util.MathUtils;
|
|||
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||
import org.mariotaku.twidere.util.MenuUtils;
|
||||
import org.mariotaku.twidere.util.ParseUtils;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.PermissionUtils;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.TwidereArrayUtils;
|
||||
import org.mariotaku.twidere.util.TwidereValidator;
|
||||
import org.mariotaku.twidere.util.TwitterContentUtils;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.Utils;
|
||||
import org.mariotaku.twidere.view.ActionIconView;
|
||||
import org.mariotaku.twidere.view.BadgeView;
|
||||
|
@ -163,7 +161,6 @@ public class ComposeActivity extends ThemedFragmentActivity implements LocationL
|
|||
private final Extractor mExtractor = new Extractor();
|
||||
private TwidereValidator mValidator;
|
||||
private LocationManager mLocationManager;
|
||||
private SharedPreferencesWrapper mPreferences;
|
||||
private ContentResolver mResolver;
|
||||
private AsyncTask<Object, Object, ?> mTask;
|
||||
private SupportMenuInflater mMenuInflater;
|
||||
|
@ -301,9 +298,9 @@ public class ComposeActivity extends ThemedFragmentActivity implements LocationL
|
|||
@Override
|
||||
protected void onStop() {
|
||||
saveAccountSelection();
|
||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission_group.LOCATION)
|
||||
== PackageManager.PERMISSION_GRANTED) {
|
||||
try {
|
||||
mLocationManager.removeUpdates(this);
|
||||
} catch (SecurityException ignore) {
|
||||
}
|
||||
super.onStop();
|
||||
}
|
||||
|
@ -587,10 +584,6 @@ public class ComposeActivity extends ThemedFragmentActivity implements LocationL
|
|||
protected void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
|
||||
mPreferences = SharedPreferencesWrapper.getInstance(this, SHARED_PREFERENCES_NAME,
|
||||
Context.MODE_PRIVATE, SharedPreferenceConstants.class);
|
||||
|
||||
final TwidereApplication app = TwidereApplication.getInstance(this);
|
||||
mResolver = getContentResolver();
|
||||
mValidator = new TwidereValidator(this);
|
||||
setContentView(R.layout.activity_compose);
|
||||
|
@ -1065,16 +1058,15 @@ public class ComposeActivity extends ThemedFragmentActivity implements LocationL
|
|||
|
||||
private boolean setComposeTitle(final Intent intent) {
|
||||
final String action = intent.getAction();
|
||||
final UserColorNameManager manager = UserColorNameManager.getInstance(this);
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
if (INTENT_ACTION_REPLY.equals(action)) {
|
||||
if (mInReplyToStatus == null) return false;
|
||||
final String displayName = manager.getDisplayName(mInReplyToStatus.user_id, mInReplyToStatus.user_name,
|
||||
final String displayName = mUserColorNameManager.getDisplayName(mInReplyToStatus.user_id, mInReplyToStatus.user_name,
|
||||
mInReplyToStatus.user_screen_name, nameFirst, false);
|
||||
setTitle(getString(R.string.reply_to, displayName));
|
||||
} else if (INTENT_ACTION_QUOTE.equals(action)) {
|
||||
if (mInReplyToStatus == null) return false;
|
||||
final String displayName = manager.getDisplayName(mInReplyToStatus.user_id, mInReplyToStatus.user_name,
|
||||
final String displayName = mUserColorNameManager.getDisplayName(mInReplyToStatus.user_id, mInReplyToStatus.user_name,
|
||||
mInReplyToStatus.user_screen_name, nameFirst, false);
|
||||
setTitle(getString(R.string.quote_user, displayName));
|
||||
} else if (INTENT_ACTION_EDIT_DRAFT.equals(action)) {
|
||||
|
@ -1082,7 +1074,7 @@ public class ComposeActivity extends ThemedFragmentActivity implements LocationL
|
|||
setTitle(R.string.edit_draft);
|
||||
} else if (INTENT_ACTION_MENTION.equals(action)) {
|
||||
if (mMentionUser == null) return false;
|
||||
final String displayName = manager.getDisplayName(mMentionUser.id, mMentionUser.name,
|
||||
final String displayName = mUserColorNameManager.getDisplayName(mMentionUser.id, mMentionUser.name,
|
||||
mMentionUser.screen_name, nameFirst, false);
|
||||
setTitle(getString(R.string.mention_user, displayName));
|
||||
} else if (INTENT_ACTION_REPLY_MULTIPLE.equals(action)) {
|
||||
|
@ -1157,6 +1149,17 @@ public class ComposeActivity extends ThemedFragmentActivity implements LocationL
|
|||
mFragmentResumed = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
if (PermissionUtils.getPermission(permissions, grantResults, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED ||
|
||||
PermissionUtils.getPermission(permissions, grantResults, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
|
||||
startLocationUpdateIfEnabled();
|
||||
} else {
|
||||
//TODO show permission denied message
|
||||
}
|
||||
}
|
||||
|
||||
private static class SetProgressVisibleRunnable implements Runnable {
|
||||
|
||||
private final ComposeActivity activity;
|
||||
|
@ -1197,34 +1200,32 @@ public class ComposeActivity extends ThemedFragmentActivity implements LocationL
|
|||
*/
|
||||
private boolean startLocationUpdateIfEnabled() {
|
||||
final LocationManager lm = mLocationManager;
|
||||
try {
|
||||
final boolean attachLocation = mPreferences.getBoolean(KEY_ATTACH_LOCATION);
|
||||
if (!attachLocation) {
|
||||
final boolean attachLocation = mPreferences.getBoolean(KEY_ATTACH_LOCATION);
|
||||
if (!attachLocation) {
|
||||
try {
|
||||
lm.removeUpdates(this);
|
||||
return false;
|
||||
} catch (SecurityException ignore) {
|
||||
}
|
||||
final Criteria criteria = new Criteria();
|
||||
criteria.setAccuracy(Criteria.ACCURACY_FINE);
|
||||
final String provider = lm.getBestProvider(criteria, true);
|
||||
if (provider != null) {
|
||||
return false;
|
||||
}
|
||||
final Criteria criteria = new Criteria();
|
||||
criteria.setAccuracy(Criteria.ACCURACY_FINE);
|
||||
final String provider = lm.getBestProvider(criteria, true);
|
||||
if (provider != null) {
|
||||
try {
|
||||
mLocationText.setText(R.string.getting_location);
|
||||
lm.requestLocationUpdates(provider, 0, 0, this);
|
||||
final Location location;
|
||||
if (lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
|
||||
location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
|
||||
} else {
|
||||
location = lm.getLastKnownLocation(provider);
|
||||
}
|
||||
final Location location = Utils.getCachedLocation(this);
|
||||
if (location != null) {
|
||||
onLocationChanged(location);
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(this, R.string.cannot_get_location, Toast.LENGTH_SHORT).show();
|
||||
} catch (SecurityException e) {
|
||||
return false;
|
||||
}
|
||||
return provider != null;
|
||||
} catch (SecurityException e) {
|
||||
return false;
|
||||
} else {
|
||||
Toast.makeText(this, R.string.cannot_get_location, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
return provider != null;
|
||||
}
|
||||
|
||||
private boolean takePhoto() {
|
||||
|
@ -1236,12 +1237,23 @@ public class ComposeActivity extends ThemedFragmentActivity implements LocationL
|
|||
private void toggleLocation() {
|
||||
final boolean attachLocation = mPreferences.getBoolean(KEY_ATTACH_LOCATION, false);
|
||||
mPreferences.edit().putBoolean(KEY_ATTACH_LOCATION, !attachLocation).apply();
|
||||
startLocationUpdateIfEnabled();
|
||||
requestOrUpdateLocation();
|
||||
updateLocationState();
|
||||
setMenu();
|
||||
updateTextCount();
|
||||
}
|
||||
|
||||
private void requestOrUpdateLocation() {
|
||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED ||
|
||||
ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
|
||||
startLocationUpdateIfEnabled();
|
||||
} else {
|
||||
final String[] permissions = {Manifest.permission.ACCESS_COARSE_LOCATION,
|
||||
Manifest.permission.ACCESS_FINE_LOCATION};
|
||||
ActivityCompat.requestPermissions(this, permissions, REQUEST_REQUEST_PERMISSIONS);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateLocationState() {
|
||||
final boolean attachLocation = mPreferences.getBoolean(KEY_ATTACH_LOCATION, false);
|
||||
if (attachLocation) {
|
||||
|
@ -1348,30 +1360,26 @@ public class ComposeActivity extends ThemedFragmentActivity implements LocationL
|
|||
|
||||
}
|
||||
|
||||
private static class AccountIconsAdapter extends Adapter<AccountIconViewHolder> {
|
||||
private static class AccountIconsAdapter extends BaseRecyclerViewAdapter<AccountIconViewHolder> {
|
||||
|
||||
private final ComposeActivity mActivity;
|
||||
private final LayoutInflater mInflater;
|
||||
private final MediaLoaderWrapper mImageLoader;
|
||||
private final LongSparseArray<Boolean> mSelection;
|
||||
private final boolean mNameFirst;
|
||||
|
||||
private ParcelableCredentials[] mAccounts;
|
||||
|
||||
public AccountIconsAdapter(ComposeActivity activity) {
|
||||
super(activity);
|
||||
setHasStableIds(true);
|
||||
mActivity = activity;
|
||||
mInflater = activity.getLayoutInflater();
|
||||
mImageLoader = activity.mImageLoader;
|
||||
mSelection = new LongSparseArray<>();
|
||||
final SharedPreferencesWrapper preferences = SharedPreferencesWrapper.getInstance(activity,
|
||||
SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE, SharedPreferenceConstants.class);
|
||||
assert preferences != null;
|
||||
mNameFirst = preferences.getBoolean(KEY_NAME_FIRST);
|
||||
mNameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
}
|
||||
|
||||
public MediaLoaderWrapper getImageLoader() {
|
||||
return mImageLoader;
|
||||
return mMediaLoader;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
|
|
@ -49,17 +49,14 @@ import com.rengwuxian.materialedittext.MaterialEditText;
|
|||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.adapter.AccountsSpinnerAdapter;
|
||||
import org.mariotaku.twidere.adapter.ArrayAdapter;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.fragment.support.BaseSupportDialogFragment;
|
||||
import org.mariotaku.twidere.model.CustomTabConfiguration;
|
||||
import org.mariotaku.twidere.model.CustomTabConfiguration.ExtraConfiguration;
|
||||
import org.mariotaku.twidere.model.ParcelableAccount;
|
||||
import org.mariotaku.twidere.model.ParcelableUser;
|
||||
import org.mariotaku.twidere.model.ParcelableUserList;
|
||||
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||
import org.mariotaku.twidere.util.ParseUtils;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
|
||||
import java.text.Collator;
|
||||
import java.util.Comparator;
|
||||
|
@ -218,20 +215,19 @@ public class CustomTabEditorActivity extends BaseSupportDialogActivity implement
|
|||
final ImageView icon = (ImageView) view.findViewById(android.R.id.icon);
|
||||
final boolean displayProfileImage = mPreferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
final boolean displayName = mPreferences.getBoolean(KEY_NAME_FIRST, true);
|
||||
final UserColorNameManager manager = UserColorNameManager.getInstance(this);
|
||||
text1.setVisibility(View.VISIBLE);
|
||||
text2.setVisibility(View.VISIBLE);
|
||||
icon.setVisibility(displayProfileImage ? View.VISIBLE : View.GONE);
|
||||
if (value instanceof ParcelableUser) {
|
||||
final ParcelableUser user = (ParcelableUser) value;
|
||||
text1.setText(manager.getUserNickname(user.id, user.name, false));
|
||||
text1.setText(mUserColorNameManager.getUserNickname(user.id, user.name, false));
|
||||
text2.setText("@" + user.screen_name);
|
||||
if (displayProfileImage) {
|
||||
mImageLoader.displayProfileImage(icon, user.profile_image_url);
|
||||
}
|
||||
} else if (value instanceof ParcelableUserList) {
|
||||
final ParcelableUserList userList = (ParcelableUserList) value;
|
||||
final String createdBy = manager.getDisplayName(userList, displayName, false);
|
||||
final String createdBy = mUserColorNameManager.getDisplayName(userList, displayName, false);
|
||||
text1.setText(userList.name);
|
||||
text2.setText(getString(R.string.created_by, createdBy));
|
||||
if (displayProfileImage) {
|
||||
|
|
|
@ -69,7 +69,6 @@ import org.mariotaku.twidere.activity.SettingsActivity;
|
|||
import org.mariotaku.twidere.activity.SettingsWizardActivity;
|
||||
import org.mariotaku.twidere.activity.UsageStatisticsActivity;
|
||||
import org.mariotaku.twidere.adapter.support.SupportTabsAdapter;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.fragment.CustomTabsFragment;
|
||||
import org.mariotaku.twidere.fragment.iface.RefreshScrollTopInterface;
|
||||
import org.mariotaku.twidere.fragment.iface.SupportFragmentCallback;
|
||||
|
@ -352,7 +351,6 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen
|
|||
return;
|
||||
}
|
||||
mPreferences = getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
final TwidereApplication app = TwidereApplication.getInstance(this);
|
||||
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
|
||||
mMultiSelectHandler = new MultiSelectEventHandler(this);
|
||||
mMultiSelectHandler.dispatchOnCreate();
|
||||
|
|
|
@ -60,7 +60,6 @@ import org.mariotaku.sqliteqb.library.RawItemArray;
|
|||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.activity.support.QuickSearchBarActivity.SuggestionItem;
|
||||
import org.mariotaku.twidere.adapter.AccountsSpinnerAdapter;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.model.ParcelableAccount;
|
||||
import org.mariotaku.twidere.model.ParcelableCredentials;
|
||||
import org.mariotaku.twidere.model.ParcelableUser;
|
||||
|
@ -428,9 +427,8 @@ public class QuickSearchBarActivity extends ThemedFragmentActivity implements On
|
|||
SuggestionsAdapter(QuickSearchBarActivity activity) {
|
||||
mActivity = activity;
|
||||
mImageLoader = activity.mImageLoader;
|
||||
mUserColorNameManager = activity.mUserColorNameManager;
|
||||
mInflater = LayoutInflater.from(activity);
|
||||
final TwidereApplication application = TwidereApplication.getInstance(activity);
|
||||
mUserColorNameManager = application.getUserColorNameManager();
|
||||
}
|
||||
|
||||
public boolean canDismiss(int position) {
|
||||
|
@ -526,11 +524,13 @@ public class QuickSearchBarActivity extends ThemedFragmentActivity implements On
|
|||
|
||||
private static final Pattern PATTERN_SCREEN_NAME = Pattern.compile("(?i)[@\uFF20]?([a-z0-9_]{1,20})");
|
||||
|
||||
private final UserColorNameManager mUserColorNameManager;
|
||||
private final long mAccountId;
|
||||
private final String mQuery;
|
||||
|
||||
public SuggestionsLoader(Context context, long accountId, String query) {
|
||||
public SuggestionsLoader(QuickSearchBarActivity context, long accountId, String query) {
|
||||
super(context);
|
||||
mUserColorNameManager = context.mUserColorNameManager;
|
||||
mAccountId = accountId;
|
||||
mQuery = query;
|
||||
}
|
||||
|
@ -551,8 +551,7 @@ public class QuickSearchBarActivity extends ThemedFragmentActivity implements On
|
|||
historyCursor.close();
|
||||
if (!emptyQuery) {
|
||||
final String queryEscaped = mQuery.replace("_", "^_");
|
||||
final UserColorNameManager nicknamePrefs = UserColorNameManager.getInstance(context);
|
||||
final long[] nicknameIds = Utils.getMatchedNicknameIds(mQuery, nicknamePrefs);
|
||||
final long[] nicknameIds = Utils.getMatchedNicknameIds(mQuery, mUserColorNameManager);
|
||||
final Expression selection = Expression.or(
|
||||
Expression.likeRaw(new Column(CachedUsers.SCREEN_NAME), "?||'%'", "^"),
|
||||
Expression.likeRaw(new Column(CachedUsers.NAME), "?||'%'", "^"),
|
||||
|
|
|
@ -34,15 +34,16 @@ import android.view.View;
|
|||
import org.mariotaku.twidere.BuildConfig;
|
||||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.activity.iface.IThemedActivity;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.util.ActivityTracker;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler;
|
||||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler.KeyboardShortcutCallback;
|
||||
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.StrictModeUtils;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.ThemedLayoutInflaterFactory;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.Utils;
|
||||
import org.mariotaku.twidere.util.dagger.ApplicationModule;
|
||||
import org.mariotaku.twidere.util.dagger.DaggerGeneralComponent;
|
||||
|
@ -54,13 +55,18 @@ public abstract class ThemedFragmentActivity extends FragmentActivity implements
|
|||
IThemedActivity, KeyboardShortcutCallback {
|
||||
|
||||
// Utility classes
|
||||
private KeyboardShortcutsHandler mKeyboardShortcutsHandler;
|
||||
@Inject
|
||||
protected KeyboardShortcutsHandler mKeyboardShortcutsHandler;
|
||||
@Inject
|
||||
protected AsyncTwitterWrapper mTwitterWrapper;
|
||||
@Inject
|
||||
protected ActivityTracker mActivityTracker;
|
||||
@Inject
|
||||
protected MediaLoaderWrapper mImageLoader;
|
||||
@Inject
|
||||
protected UserColorNameManager mUserColorNameManager;
|
||||
@Inject
|
||||
protected SharedPreferencesWrapper mPreferences;
|
||||
|
||||
// Data fields
|
||||
private int mCurrentThemeResource, mCurrentThemeColor, mCurrentThemeBackgroundAlpha;
|
||||
|
@ -144,7 +150,6 @@ public abstract class ThemedFragmentActivity extends FragmentActivity implements
|
|||
}
|
||||
super.onCreate(savedInstanceState);
|
||||
DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(this)).build().inject(this);
|
||||
mKeyboardShortcutsHandler = TwidereApplication.getInstance(this).getKeyboardShortcutsHandler();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -35,7 +35,6 @@ import org.mariotaku.twidere.Constants;
|
|||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.adapter.iface.IActivitiesAdapter;
|
||||
import org.mariotaku.twidere.api.twitter.model.Activity;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.fragment.support.UserFragment;
|
||||
import org.mariotaku.twidere.model.ParcelableActivity;
|
||||
import org.mariotaku.twidere.model.ParcelableMedia;
|
||||
|
@ -43,7 +42,6 @@ import org.mariotaku.twidere.model.ParcelableStatus;
|
|||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||
import org.mariotaku.twidere.util.MediaLoadingHandler;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.TwidereLinkify;
|
||||
import org.mariotaku.twidere.util.TwidereLinkify.OnLinkClickListener;
|
||||
|
@ -80,27 +78,24 @@ public abstract class AbsActivitiesAdapter<Data> extends LoadMoreSupportAdapter<
|
|||
private final boolean mDisplayProfileImage;
|
||||
private final TwidereLinkify mLinkify;
|
||||
private final DummyStatusHolderAdapter mStatusAdapterDelegate;
|
||||
private final UserColorNameManager mUserColorNameManager;
|
||||
private ActivityAdapterListener mActivityAdapterListener;
|
||||
|
||||
protected AbsActivitiesAdapter(final Context context, boolean compact) {
|
||||
super(context);
|
||||
mContext = context;
|
||||
final TwidereApplication app = TwidereApplication.getInstance(context);
|
||||
mCardBackgroundColor = ThemeUtils.getCardBackgroundColor(context, ThemeUtils.getThemeBackgroundOption(context), ThemeUtils.getUserThemeBackgroundAlpha(context));
|
||||
mCardBackgroundColor = ThemeUtils.getCardBackgroundColor(context,
|
||||
ThemeUtils.getThemeBackgroundOption(context),
|
||||
ThemeUtils.getUserThemeBackgroundAlpha(context));
|
||||
mInflater = LayoutInflater.from(context);
|
||||
mLoadingHandler = new MediaLoadingHandler(R.id.media_preview_progress);
|
||||
mUserColorNameManager = app.getUserColorNameManager();
|
||||
final SharedPreferencesWrapper preferences = SharedPreferencesWrapper.getInstance(context,
|
||||
SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
mTextSize = preferences.getInt(KEY_TEXT_SIZE, context.getResources().getInteger(R.integer.default_text_size));
|
||||
mTextSize = mPreferences.getInt(KEY_TEXT_SIZE, context.getResources().getInteger(R.integer.default_text_size));
|
||||
mCompactCards = compact;
|
||||
mProfileImageStyle = Utils.getProfileImageStyle(preferences.getString(KEY_PROFILE_IMAGE_STYLE, null));
|
||||
mMediaPreviewStyle = Utils.getMediaPreviewStyle(preferences.getString(KEY_MEDIA_PREVIEW_STYLE, null));
|
||||
mLinkHighlightingStyle = Utils.getLinkHighlightingStyleInt(preferences.getString(KEY_LINK_HIGHLIGHT_OPTION, null));
|
||||
mDisplayProfileImage = preferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
mDisplayMediaPreview = preferences.getBoolean(KEY_MEDIA_PREVIEW, false);
|
||||
mNameFirst = preferences.getBoolean(KEY_NAME_FIRST, true);
|
||||
mProfileImageStyle = Utils.getProfileImageStyle(mPreferences.getString(KEY_PROFILE_IMAGE_STYLE, null));
|
||||
mMediaPreviewStyle = Utils.getMediaPreviewStyle(mPreferences.getString(KEY_MEDIA_PREVIEW_STYLE, null));
|
||||
mLinkHighlightingStyle = Utils.getLinkHighlightingStyleInt(mPreferences.getString(KEY_LINK_HIGHLIGHT_OPTION, null));
|
||||
mDisplayProfileImage = mPreferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
mDisplayMediaPreview = mPreferences.getBoolean(KEY_MEDIA_PREVIEW, false);
|
||||
mNameFirst = mPreferences.getBoolean(KEY_NAME_FIRST, true);
|
||||
mLinkify = new TwidereLinkify(this);
|
||||
mStatusAdapterDelegate = new DummyStatusHolderAdapter(context);
|
||||
}
|
||||
|
|
|
@ -11,13 +11,11 @@ import android.view.ViewGroup;
|
|||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.adapter.iface.IStatusesAdapter;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.model.ParcelableMedia;
|
||||
import org.mariotaku.twidere.model.ParcelableStatus;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||
import org.mariotaku.twidere.util.MediaLoadingHandler;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.StatusAdapterLinkClickHandler;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.TwidereLinkify;
|
||||
|
@ -42,7 +40,6 @@ public abstract class AbsStatusesAdapter<D> extends LoadMoreSupportAdapter<ViewH
|
|||
private final LayoutInflater mInflater;
|
||||
private final MediaLoadingHandler mLoadingHandler;
|
||||
private final TwidereLinkify mLinkify;
|
||||
private final UserColorNameManager mUserColorNameManager;
|
||||
|
||||
private StatusAdapterListener mStatusAdapterListener;
|
||||
|
||||
|
@ -68,23 +65,19 @@ public abstract class AbsStatusesAdapter<D> extends LoadMoreSupportAdapter<ViewH
|
|||
public AbsStatusesAdapter(Context context, boolean compact) {
|
||||
super(context);
|
||||
mContext = context;
|
||||
final TwidereApplication app = TwidereApplication.getInstance(context);
|
||||
mCardBackgroundColor = ThemeUtils.getCardBackgroundColor(context, ThemeUtils.getThemeBackgroundOption(context), ThemeUtils.getUserThemeBackgroundAlpha(context));
|
||||
mInflater = LayoutInflater.from(context);
|
||||
mUserColorNameManager = app.getUserColorNameManager();
|
||||
mLoadingHandler = new MediaLoadingHandler(R.id.media_preview_progress);
|
||||
final SharedPreferencesWrapper preferences = SharedPreferencesWrapper.getInstance(context,
|
||||
SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
mTextSize = preferences.getInt(KEY_TEXT_SIZE, context.getResources().getInteger(R.integer.default_text_size));
|
||||
mTextSize = mPreferences.getInt(KEY_TEXT_SIZE, context.getResources().getInteger(R.integer.default_text_size));
|
||||
mCompactCards = compact;
|
||||
mProfileImageStyle = Utils.getProfileImageStyle(preferences.getString(KEY_PROFILE_IMAGE_STYLE, null));
|
||||
mMediaPreviewStyle = Utils.getMediaPreviewStyle(preferences.getString(KEY_MEDIA_PREVIEW_STYLE, null));
|
||||
mLinkHighlightingStyle = Utils.getLinkHighlightingStyleInt(preferences.getString(KEY_LINK_HIGHLIGHT_OPTION, null));
|
||||
mNameFirst = preferences.getBoolean(KEY_NAME_FIRST, true);
|
||||
mDisplayProfileImage = preferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
mDisplayMediaPreview = preferences.getBoolean(KEY_MEDIA_PREVIEW, false);
|
||||
mSensitiveContentEnabled = preferences.getBoolean(KEY_DISPLAY_SENSITIVE_CONTENTS, false);
|
||||
mHideCardActions = preferences.getBoolean(KEY_HIDE_CARD_ACTIONS, false);
|
||||
mProfileImageStyle = Utils.getProfileImageStyle(mPreferences.getString(KEY_PROFILE_IMAGE_STYLE, null));
|
||||
mMediaPreviewStyle = Utils.getMediaPreviewStyle(mPreferences.getString(KEY_MEDIA_PREVIEW_STYLE, null));
|
||||
mLinkHighlightingStyle = Utils.getLinkHighlightingStyleInt(mPreferences.getString(KEY_LINK_HIGHLIGHT_OPTION, null));
|
||||
mNameFirst = mPreferences.getBoolean(KEY_NAME_FIRST, true);
|
||||
mDisplayProfileImage = mPreferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
mDisplayMediaPreview = mPreferences.getBoolean(KEY_MEDIA_PREVIEW, false);
|
||||
mSensitiveContentEnabled = mPreferences.getBoolean(KEY_DISPLAY_SENSITIVE_CONTENTS, false);
|
||||
mHideCardActions = mPreferences.getBoolean(KEY_HIDE_CARD_ACTIONS, false);
|
||||
mLinkify = new TwidereLinkify(new StatusAdapterLinkClickHandler<>(this));
|
||||
setShowInReplyTo(true);
|
||||
}
|
||||
|
|
|
@ -30,10 +30,8 @@ import android.view.ViewGroup;
|
|||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.adapter.iface.IUserListsAdapter;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.Utils;
|
||||
|
@ -54,22 +52,17 @@ public abstract class AbsUserListsAdapter<D> extends LoadMoreSupportAdapter<View
|
|||
private final int mTextSize;
|
||||
private final boolean mDisplayProfileImage;
|
||||
|
||||
private final UserColorNameManager mUserColorNameManager;
|
||||
private final boolean mNameFirst;
|
||||
|
||||
public AbsUserListsAdapter(final Context context, final boolean compact) {
|
||||
super(context);
|
||||
final TwidereApplication app = TwidereApplication.getInstance(context);
|
||||
mContext = context;
|
||||
mCardBackgroundColor = ThemeUtils.getCardBackgroundColor(context, ThemeUtils.getThemeBackgroundOption(context), ThemeUtils.getUserThemeBackgroundAlpha(context));
|
||||
mInflater = LayoutInflater.from(context);
|
||||
mUserColorNameManager = app.getUserColorNameManager();
|
||||
final SharedPreferencesWrapper preferences = SharedPreferencesWrapper.getInstance(context,
|
||||
SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
mTextSize = preferences.getInt(KEY_TEXT_SIZE, context.getResources().getInteger(R.integer.default_text_size));
|
||||
mProfileImageStyle = Utils.getProfileImageStyle(preferences.getString(KEY_PROFILE_IMAGE_STYLE, null));
|
||||
mDisplayProfileImage = preferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
mNameFirst = preferences.getBoolean(KEY_NAME_FIRST, true);
|
||||
mTextSize = mPreferences.getInt(KEY_TEXT_SIZE, context.getResources().getInteger(R.integer.default_text_size));
|
||||
mProfileImageStyle = Utils.getProfileImageStyle(mPreferences.getString(KEY_PROFILE_IMAGE_STYLE, null));
|
||||
mDisplayProfileImage = mPreferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
mNameFirst = mPreferences.getBoolean(KEY_NAME_FIRST, true);
|
||||
mCompactCards = compact;
|
||||
}
|
||||
|
||||
|
|
|
@ -30,10 +30,8 @@ import android.view.ViewGroup;
|
|||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.adapter.iface.IUsersAdapter;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.Utils;
|
||||
|
@ -54,20 +52,14 @@ public abstract class AbsUsersAdapter<D> extends LoadMoreSupportAdapter<ViewHold
|
|||
private final int mTextSize;
|
||||
private final boolean mDisplayProfileImage;
|
||||
|
||||
private final UserColorNameManager mUserColorNameManager;
|
||||
|
||||
public AbsUsersAdapter(final Context context, final boolean compact) {
|
||||
super(context);
|
||||
final TwidereApplication app = TwidereApplication.getInstance(context);
|
||||
mContext = context;
|
||||
mCardBackgroundColor = ThemeUtils.getCardBackgroundColor(context, ThemeUtils.getThemeBackgroundOption(context), ThemeUtils.getUserThemeBackgroundAlpha(context));
|
||||
mInflater = LayoutInflater.from(context);
|
||||
mUserColorNameManager = app.getUserColorNameManager();
|
||||
final SharedPreferencesWrapper preferences = SharedPreferencesWrapper.getInstance(context,
|
||||
SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
mTextSize = preferences.getInt(KEY_TEXT_SIZE, context.getResources().getInteger(R.integer.default_text_size));
|
||||
mProfileImageStyle = Utils.getProfileImageStyle(preferences.getString(KEY_PROFILE_IMAGE_STYLE, null));
|
||||
mDisplayProfileImage = preferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
mTextSize = mPreferences.getInt(KEY_TEXT_SIZE, context.getResources().getInteger(R.integer.default_text_size));
|
||||
mProfileImageStyle = Utils.getProfileImageStyle(mPreferences.getString(KEY_PROFILE_IMAGE_STYLE, null));
|
||||
mDisplayProfileImage = mPreferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
mCompactCards = compact;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,8 +26,10 @@ import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
|||
import org.mariotaku.twidere.adapter.iface.IBaseAdapter;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||
import org.mariotaku.twidere.util.MultiSelectManager;
|
||||
import org.mariotaku.twidere.util.OnLinkClickHandler;
|
||||
import org.mariotaku.twidere.util.TwidereLinkify;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.Utils;
|
||||
import org.mariotaku.twidere.util.dagger.ApplicationModule;
|
||||
import org.mariotaku.twidere.util.dagger.DaggerGeneralComponent;
|
||||
|
@ -39,6 +41,8 @@ import javax.inject.Inject;
|
|||
public class BaseArrayAdapter<T> extends ArrayAdapter<T> implements IBaseAdapter, OnSharedPreferenceChangeListener {
|
||||
|
||||
private final TwidereLinkify mLinkify;
|
||||
@Inject
|
||||
protected UserColorNameManager mUserColorNameManager;
|
||||
|
||||
private float mTextSize;
|
||||
private int mLinkHighlightOption;
|
||||
|
@ -48,6 +52,8 @@ public class BaseArrayAdapter<T> extends ArrayAdapter<T> implements IBaseAdapter
|
|||
private final SharedPreferences mNicknamePrefs, mColorPrefs;
|
||||
@Inject
|
||||
protected MediaLoaderWrapper mImageLoader;
|
||||
@Inject
|
||||
protected MultiSelectManager mMultiSelectManager;
|
||||
|
||||
public BaseArrayAdapter(final Context context, final int layoutRes) {
|
||||
this(context, layoutRes, null);
|
||||
|
@ -58,7 +64,7 @@ public class BaseArrayAdapter<T> extends ArrayAdapter<T> implements IBaseAdapter
|
|||
//noinspection unchecked
|
||||
DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(context)).build().inject((BaseArrayAdapter<Object>) this);
|
||||
final TwidereApplication app = TwidereApplication.getInstance(context);
|
||||
mLinkify = new TwidereLinkify(new OnLinkClickHandler(context, app.getMultiSelectManager()));
|
||||
mLinkify = new TwidereLinkify(new OnLinkClickHandler(context, mMultiSelectManager));
|
||||
mNicknamePrefs = context.getSharedPreferences(USER_NICKNAME_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
mColorPrefs = context.getSharedPreferences(USER_COLOR_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
mNicknamePrefs.registerOnSharedPreferenceChangeListener(this);
|
||||
|
|
|
@ -24,7 +24,10 @@ import android.support.v7.widget.RecyclerView;
|
|||
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||
import org.mariotaku.twidere.util.MultiSelectManager;
|
||||
import org.mariotaku.twidere.util.ReadStateManager;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.dagger.ApplicationModule;
|
||||
import org.mariotaku.twidere.util.dagger.DaggerGeneralComponent;
|
||||
|
||||
|
@ -33,19 +36,25 @@ import javax.inject.Inject;
|
|||
/**
|
||||
* Created by mariotaku on 15/10/5.
|
||||
*/
|
||||
public abstract class BaseAdapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> {
|
||||
public abstract class BaseRecyclerViewAdapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> {
|
||||
@Inject
|
||||
protected AsyncTwitterWrapper mTwitterWrapper;
|
||||
@Inject
|
||||
protected ReadStateManager mReadStateManager;
|
||||
@Inject
|
||||
protected MediaLoaderWrapper mMediaLoader;
|
||||
@Inject
|
||||
protected MultiSelectManager mMultiSelectManager;
|
||||
@Inject
|
||||
protected UserColorNameManager mUserColorNameManager;
|
||||
@Inject
|
||||
protected SharedPreferencesWrapper mPreferences;
|
||||
|
||||
public BaseAdapter(Context context) {
|
||||
public BaseRecyclerViewAdapter(Context context) {
|
||||
//noinspection unchecked
|
||||
DaggerGeneralComponent.builder()
|
||||
.applicationModule(ApplicationModule.get(context))
|
||||
.build()
|
||||
.inject((BaseAdapter<RecyclerView.ViewHolder>) this);
|
||||
.inject((BaseRecyclerViewAdapter<RecyclerView.ViewHolder>) this);
|
||||
}
|
||||
}
|
|
@ -50,6 +50,8 @@ public class DraftsAdapter extends SimpleCursorAdapter implements Constants {
|
|||
|
||||
@Inject
|
||||
MediaLoaderWrapper mImageLoader;
|
||||
@Inject
|
||||
SharedPreferencesWrapper mPreferences;
|
||||
private final MediaLoadingHandler mMediaLoadingHandler;
|
||||
private final int mMediaPreviewStyle;
|
||||
|
||||
|
@ -60,9 +62,7 @@ public class DraftsAdapter extends SimpleCursorAdapter implements Constants {
|
|||
super(context, R.layout.list_item_draft, null, new String[0], new int[0], 0);
|
||||
DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(context)).build().inject(this);
|
||||
mMediaLoadingHandler = new MediaLoadingHandler(R.id.media_preview_progress);
|
||||
final SharedPreferencesWrapper preferences = SharedPreferencesWrapper.getInstance(context,
|
||||
SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
mMediaPreviewStyle = Utils.getMediaPreviewStyle(preferences.getString(KEY_MEDIA_PREVIEW_STYLE, null));
|
||||
mMediaPreviewStyle = Utils.getMediaPreviewStyle(mPreferences.getString(KEY_MEDIA_PREVIEW_STYLE, null));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
package org.mariotaku.twidere.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.v7.widget.RecyclerView.Adapter;
|
||||
import android.support.v7.widget.RecyclerView.ViewHolder;
|
||||
|
||||
import org.mariotaku.twidere.adapter.iface.ILoadMoreSupportAdapter;
|
||||
|
@ -28,7 +27,7 @@ import org.mariotaku.twidere.adapter.iface.ILoadMoreSupportAdapter;
|
|||
/**
|
||||
* Created by mariotaku on 15/4/16.
|
||||
*/
|
||||
public abstract class LoadMoreSupportAdapter<VH extends ViewHolder> extends BaseAdapter<VH>
|
||||
public abstract class LoadMoreSupportAdapter<VH extends ViewHolder> extends BaseRecyclerViewAdapter<VH>
|
||||
implements ILoadMoreSupportAdapter {
|
||||
|
||||
private boolean mLoadMoreSupported;
|
||||
|
|
|
@ -31,14 +31,11 @@ import android.view.ViewGroup;
|
|||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.adapter.iface.IDirectMessagesAdapter;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.model.ParcelableDirectMessage;
|
||||
import org.mariotaku.twidere.model.ParcelableDirectMessage.CursorIndices;
|
||||
import org.mariotaku.twidere.util.DirectMessageOnLinkClickHandler;
|
||||
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||
import org.mariotaku.twidere.util.MediaLoadingHandler;
|
||||
import org.mariotaku.twidere.util.MultiSelectManager;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.TwidereLinkify;
|
||||
import org.mariotaku.twidere.util.Utils;
|
||||
|
@ -46,7 +43,7 @@ import org.mariotaku.twidere.view.ShapedImageView;
|
|||
import org.mariotaku.twidere.view.holder.IncomingMessageViewHolder;
|
||||
import org.mariotaku.twidere.view.holder.MessageViewHolder;
|
||||
|
||||
public class MessageConversationAdapter extends BaseAdapter<ViewHolder> implements Constants,
|
||||
public class MessageConversationAdapter extends BaseRecyclerViewAdapter<ViewHolder> implements Constants,
|
||||
IDirectMessagesAdapter, OnClickListener {
|
||||
|
||||
private static final int ITEM_VIEW_TYPE_MESSAGE_OUTGOING = 1;
|
||||
|
@ -61,7 +58,6 @@ public class MessageConversationAdapter extends BaseAdapter<ViewHolder> implemen
|
|||
|
||||
private final Context mContext;
|
||||
private final LayoutInflater mInflater;
|
||||
private final MultiSelectManager mMultiSelectManager;
|
||||
private final MediaLoadingHandler mMediaLoadingHandler;
|
||||
|
||||
private Cursor mCursor;
|
||||
|
@ -72,14 +68,10 @@ public class MessageConversationAdapter extends BaseAdapter<ViewHolder> implemen
|
|||
super(context);
|
||||
mContext = context;
|
||||
mInflater = LayoutInflater.from(context);
|
||||
final TwidereApplication app = TwidereApplication.getInstance(context);
|
||||
mLinkify = new TwidereLinkify(new DirectMessageOnLinkClickHandler(context, null));
|
||||
mMultiSelectManager = app.getMultiSelectManager();
|
||||
final SharedPreferencesWrapper preferences = SharedPreferencesWrapper.getInstance(context,
|
||||
SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
mDisplayProfileImage = preferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
mProfileImageStyle = Utils.getProfileImageStyle(preferences.getString(KEY_PROFILE_IMAGE_STYLE, null));
|
||||
mMediaPreviewStyle = Utils.getMediaPreviewStyle(preferences.getString(KEY_MEDIA_PREVIEW_STYLE, null));
|
||||
mDisplayProfileImage = mPreferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
mProfileImageStyle = Utils.getProfileImageStyle(mPreferences.getString(KEY_PROFILE_IMAGE_STYLE, null));
|
||||
mMediaPreviewStyle = Utils.getMediaPreviewStyle(mPreferences.getString(KEY_MEDIA_PREVIEW_STYLE, null));
|
||||
mMediaLoadingHandler = new MediaLoadingHandler(R.id.media_preview_progress);
|
||||
mIncomingMessageColor = ThemeUtils.getUserAccentColor(context);
|
||||
mOutgoingMessageColor = ThemeUtils.getCardBackgroundColor(context, ThemeUtils.getThemeBackgroundOption(context), ThemeUtils.getUserThemeBackgroundAlpha(context));
|
||||
|
@ -193,8 +185,7 @@ public class MessageConversationAdapter extends BaseAdapter<ViewHolder> implemen
|
|||
case R.id.media_preview: {
|
||||
final ParcelableDirectMessage message = getDirectMessage(position);
|
||||
if (message == null || message.media == null) return;
|
||||
//TODO open media animation
|
||||
Bundle options = null;
|
||||
final Bundle options = Utils.createMediaViewerActivityOption(view);
|
||||
Utils.openMedia(mContext, message, null, options);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,9 +38,7 @@ import org.mariotaku.twidere.model.StringLongPair;
|
|||
import org.mariotaku.twidere.provider.TwidereDataStore.DirectMessages.ConversationEntries;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||
import org.mariotaku.twidere.util.MultiSelectManager;
|
||||
import org.mariotaku.twidere.util.ReadStateManager.OnReadStateChangeListener;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.Utils;
|
||||
import org.mariotaku.twidere.view.holder.LoadIndicatorViewHolder;
|
||||
|
@ -54,12 +52,10 @@ public class MessageEntriesAdapter extends LoadMoreSupportAdapter<ViewHolder> im
|
|||
|
||||
private final Context mContext;
|
||||
private final LayoutInflater mInflater;
|
||||
private final MultiSelectManager mMultiSelectManager;
|
||||
private final int mTextSize;
|
||||
private final int mProfileImageStyle;
|
||||
private final int mMediaPreviewStyle;
|
||||
private final OnSharedPreferenceChangeListener mReadStateChangeListener;
|
||||
private UserColorNameManager mUserColorNameManager;
|
||||
|
||||
private final boolean mDisplayProfileImage;
|
||||
private boolean mShowAccountsColor;
|
||||
|
@ -72,14 +68,10 @@ public class MessageEntriesAdapter extends LoadMoreSupportAdapter<ViewHolder> im
|
|||
mContext = context;
|
||||
mInflater = LayoutInflater.from(context);
|
||||
final TwidereApplication app = TwidereApplication.getInstance(context);
|
||||
mMultiSelectManager = app.getMultiSelectManager();
|
||||
final SharedPreferencesWrapper preferences = SharedPreferencesWrapper.getInstance(context,
|
||||
SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
mProfileImageStyle = Utils.getProfileImageStyle(preferences.getString(KEY_PROFILE_IMAGE_STYLE, null));
|
||||
mMediaPreviewStyle = Utils.getMediaPreviewStyle(preferences.getString(KEY_MEDIA_PREVIEW_STYLE, null));
|
||||
mDisplayProfileImage = preferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
mTextSize = preferences.getInt(KEY_TEXT_SIZE, context.getResources().getInteger(R.integer.default_text_size));
|
||||
mUserColorNameManager = app.getUserColorNameManager();
|
||||
mProfileImageStyle = Utils.getProfileImageStyle(mPreferences.getString(KEY_PROFILE_IMAGE_STYLE, null));
|
||||
mMediaPreviewStyle = Utils.getMediaPreviewStyle(mPreferences.getString(KEY_MEDIA_PREVIEW_STYLE, null));
|
||||
mDisplayProfileImage = mPreferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
mTextSize = mPreferences.getInt(KEY_TEXT_SIZE, context.getResources().getInteger(R.integer.default_text_size));
|
||||
mReadStateChangeListener = new OnSharedPreferenceChangeListener() {
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,152 +0,0 @@
|
|||
/*
|
||||
* Twidere - Twitter client for Android
|
||||
*
|
||||
* Copyright (C) 2012-2014 Mariotaku Lee <mariotaku.lee@gmail.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.mariotaku.twidere.adapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.adapter.iface.IBaseCardAdapter;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.model.ParcelableUserList;
|
||||
import org.mariotaku.twidere.util.MultiSelectManager;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.Utils;
|
||||
import org.mariotaku.twidere.view.holder.UserListViewListHolder;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import static org.mariotaku.twidere.util.Utils.configBaseCardAdapter;
|
||||
import static org.mariotaku.twidere.util.Utils.getLocalizedNumber;
|
||||
import static org.mariotaku.twidere.util.Utils.openUserProfile;
|
||||
|
||||
public class ParcelableUserListsListAdapter extends BaseArrayAdapter<ParcelableUserList> implements IBaseCardAdapter,
|
||||
OnClickListener {
|
||||
|
||||
private final Context mContext;
|
||||
private final MultiSelectManager mMultiSelectManager;
|
||||
private final Locale mLocale;
|
||||
private final UserColorNameManager mUserColorNameManager;
|
||||
|
||||
public ParcelableUserListsListAdapter(final Context context) {
|
||||
this(context, Utils.isCompactCards(context));
|
||||
}
|
||||
|
||||
public ParcelableUserListsListAdapter(final Context context, final boolean compactCards) {
|
||||
super(context, getItemResource(compactCards));
|
||||
mContext = context;
|
||||
mLocale = context.getResources().getConfiguration().locale;
|
||||
final TwidereApplication app = TwidereApplication.getInstance(context);
|
||||
mMultiSelectManager = app.getMultiSelectManager();
|
||||
mUserColorNameManager = app.getUserColorNameManager();
|
||||
configBaseCardAdapter(context, this);
|
||||
}
|
||||
|
||||
public void appendData(final List<ParcelableUserList> data) {
|
||||
setData(data, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getItemId(final int position) {
|
||||
return getItem(position) != null ? getItem(position).id : -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(final int position, final View convertView, final ViewGroup parent) {
|
||||
final View view = super.getView(position, convertView, parent);
|
||||
final Object tag = view.getTag();
|
||||
final UserListViewListHolder holder;
|
||||
if (tag instanceof UserListViewListHolder) {
|
||||
holder = (UserListViewListHolder) tag;
|
||||
} else {
|
||||
holder = new UserListViewListHolder(view);
|
||||
holder.profile_image.setOnClickListener(this);
|
||||
// holder.content.setOnOverflowIconClickListener(this);
|
||||
view.setTag(holder);
|
||||
}
|
||||
|
||||
holder.position = position;
|
||||
|
||||
final ParcelableUserList userList = getItem(position);
|
||||
final String displayName = mUserColorNameManager.getDisplayName(userList, isDisplayNameFirst(), false);
|
||||
holder.setTextSize(getTextSize());
|
||||
holder.name.setText(userList.name);
|
||||
holder.created_by.setText(mContext.getString(R.string.created_by, displayName));
|
||||
if (holder.description != null) {
|
||||
holder.description.setVisibility(TextUtils.isEmpty(userList.description) ? View.GONE : View.VISIBLE);
|
||||
holder.description.setText(userList.description);
|
||||
}
|
||||
if (holder.members_count != null) {
|
||||
holder.members_count.setText(getLocalizedNumber(mLocale, userList.members_count));
|
||||
}
|
||||
if (holder.subscribers_count != null) {
|
||||
holder.subscribers_count.setText(getLocalizedNumber(mLocale, userList.subscribers_count));
|
||||
}
|
||||
holder.profile_image.setVisibility(isProfileImageDisplayed() ? View.VISIBLE : View.GONE);
|
||||
if (isProfileImageDisplayed()) {
|
||||
mImageLoader.displayProfileImage(holder.profile_image, userList.user_profile_image_url);
|
||||
} else {
|
||||
mImageLoader.cancelDisplayTask(holder.profile_image);
|
||||
}
|
||||
holder.profile_image.setTag(position);
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(final View view) {
|
||||
if (mMultiSelectManager.isActive()) return;
|
||||
final Object tag = view.getTag();
|
||||
final int position = tag instanceof Integer ? (Integer) tag : -1;
|
||||
if (position == -1) return;
|
||||
switch (view.getId()) {
|
||||
case R.id.profile_image: {
|
||||
if (mContext instanceof Activity) {
|
||||
final ParcelableUserList item = getItem(position);
|
||||
openUserProfile(mContext, item.account_id, item.user_id, item.user_screen_name,
|
||||
null);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setData(final List<ParcelableUserList> data, final boolean clear_old) {
|
||||
if (clear_old) {
|
||||
clear();
|
||||
}
|
||||
if (data == null) return;
|
||||
for (final ParcelableUserList user : data) {
|
||||
if (clear_old || findItemPosition(user.id) < 0) {
|
||||
add(user);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static int getItemResource(final boolean compactCards) {
|
||||
// return compactCards ? R.layout.card_item_user_list_compact : R.layout.card_item_user_list;
|
||||
return R.layout.list_item_user_list;
|
||||
}
|
||||
}
|
|
@ -25,9 +25,7 @@ import android.view.ViewGroup;
|
|||
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.adapter.iface.IBaseAdapter;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.model.ParcelableUserList;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.view.holder.TwoLineWithIconViewHolder;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -37,13 +35,10 @@ import static org.mariotaku.twidere.util.Utils.configBaseAdapter;
|
|||
public class SimpleParcelableUserListsAdapter extends BaseArrayAdapter<ParcelableUserList> implements IBaseAdapter {
|
||||
|
||||
private final Context mContext;
|
||||
private UserColorNameManager mUserColorNameManager;
|
||||
|
||||
public SimpleParcelableUserListsAdapter(final Context context) {
|
||||
super(context, R.layout.list_item_two_line);
|
||||
mContext = context;
|
||||
final TwidereApplication app = TwidereApplication.getInstance(context);
|
||||
mUserColorNameManager = app.getUserColorNameManager();
|
||||
configBaseAdapter(context, this);
|
||||
}
|
||||
|
||||
|
|
|
@ -25,9 +25,7 @@ import android.view.ViewGroup;
|
|||
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.adapter.iface.IBaseAdapter;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.model.ParcelableUser;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.view.holder.TwoLineWithIconViewHolder;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -38,7 +36,6 @@ import static org.mariotaku.twidere.util.Utils.getUserTypeIconRes;
|
|||
public class SimpleParcelableUsersAdapter extends BaseArrayAdapter<ParcelableUser> implements IBaseAdapter {
|
||||
|
||||
private final Context mContext;
|
||||
private final UserColorNameManager mUserColorNameManager;
|
||||
|
||||
public SimpleParcelableUsersAdapter(final Context context) {
|
||||
this(context, R.layout.list_item_user);
|
||||
|
@ -47,8 +44,6 @@ public class SimpleParcelableUsersAdapter extends BaseArrayAdapter<ParcelableUse
|
|||
public SimpleParcelableUsersAdapter(final Context context, final int layoutRes) {
|
||||
super(context, layoutRes);
|
||||
mContext = context;
|
||||
final TwidereApplication app = TwidereApplication.getInstance(context);
|
||||
mUserColorNameManager = app.getUserColorNameManager();
|
||||
configBaseAdapter(context, this);
|
||||
}
|
||||
|
||||
|
|
|
@ -66,10 +66,10 @@ public class UserHashtagAutoCompleteAdapter extends SimpleCursorAdapter implemen
|
|||
private final SQLiteDatabase mDatabase;
|
||||
@Inject
|
||||
MediaLoaderWrapper mProfileImageLoader;
|
||||
@NonNull
|
||||
private final SharedPreferencesWrapper mPreferences;
|
||||
@NonNull
|
||||
private final UserColorNameManager mUserColorNameManager;
|
||||
@Inject
|
||||
SharedPreferencesWrapper mPreferences;
|
||||
@Inject
|
||||
UserColorNameManager mUserColorNameManager;
|
||||
|
||||
private final EditText mEditText;
|
||||
|
||||
|
@ -88,8 +88,6 @@ public class UserHashtagAutoCompleteAdapter extends SimpleCursorAdapter implemen
|
|||
DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(context)).build().inject(this);
|
||||
mEditText = view;
|
||||
final TwidereApplication app = TwidereApplication.getInstance(context);
|
||||
mPreferences = SharedPreferencesWrapper.getInstance(context, SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
mUserColorNameManager = app.getUserColorNameManager();
|
||||
mResolver = context.getContentResolver();
|
||||
mDatabase = app.getSQLiteDatabase();
|
||||
mDisplayProfileImage = mPreferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
|
|
|
@ -46,9 +46,7 @@ import org.mariotaku.twidere.activity.MainHondaJOJOActivity;
|
|||
import org.mariotaku.twidere.service.RefreshService;
|
||||
import org.mariotaku.twidere.util.AbsLogger;
|
||||
import org.mariotaku.twidere.util.DebugModeUtils;
|
||||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler;
|
||||
import org.mariotaku.twidere.util.MathUtils;
|
||||
import org.mariotaku.twidere.util.MultiSelectManager;
|
||||
import org.mariotaku.twidere.util.StrictModeUtils;
|
||||
import org.mariotaku.twidere.util.TwidereLogger;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
|
@ -62,8 +60,6 @@ import org.mariotaku.twidere.util.net.TwidereNetwork;
|
|||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import edu.tsinghua.hotmobi.HotMobiLogger;
|
||||
|
||||
import static org.mariotaku.twidere.util.Utils.getBestCacheDir;
|
||||
import static org.mariotaku.twidere.util.Utils.getInternalCacheDir;
|
||||
import static org.mariotaku.twidere.util.Utils.initAccountColor;
|
||||
|
@ -80,15 +76,11 @@ public class TwidereApplication extends MultiDexApplication implements Constants
|
|||
|
||||
private Handler mHandler;
|
||||
private SharedPreferences mPreferences;
|
||||
private MultiSelectManager mMultiSelectManager;
|
||||
private DiskCache mDiskCache, mFullDiskCache;
|
||||
private SQLiteOpenHelper mSQLiteOpenHelper;
|
||||
private Network mNetwork;
|
||||
private SQLiteDatabase mDatabase;
|
||||
private KeyboardShortcutsHandler mKeyboardShortcutsHandler;
|
||||
private UserColorNameManager mUserColorNameManager;
|
||||
|
||||
private HotMobiLogger mHotMobiLogger;
|
||||
private ApplicationModule mApplicationModule;
|
||||
|
||||
@NonNull
|
||||
|
@ -106,10 +98,6 @@ public class TwidereApplication extends MultiDexApplication implements Constants
|
|||
return mFullDiskCache = createDiskCache(DIR_NAME_FULL_IMAGE_CACHE);
|
||||
}
|
||||
|
||||
public UserColorNameManager getUserColorNameManager() {
|
||||
if (mUserColorNameManager != null) return mUserColorNameManager;
|
||||
return mUserColorNameManager = new UserColorNameManager(this);
|
||||
}
|
||||
|
||||
public Handler getHandler() {
|
||||
return mHandler;
|
||||
|
@ -120,21 +108,14 @@ public class TwidereApplication extends MultiDexApplication implements Constants
|
|||
return mNetwork = new TwidereNetwork(this);
|
||||
}
|
||||
|
||||
public KeyboardShortcutsHandler getKeyboardShortcutsHandler() {
|
||||
if (mKeyboardShortcutsHandler != null) return mKeyboardShortcutsHandler;
|
||||
mKeyboardShortcutsHandler = new KeyboardShortcutsHandler(this);
|
||||
public void initKeyboardShortcuts() {
|
||||
final SharedPreferences preferences = getSharedPreferences();
|
||||
if (!preferences.getBoolean(KEY_KEYBOARD_SHORTCUT_INITIALIZED, false)) {
|
||||
mKeyboardShortcutsHandler.reset();
|
||||
getApplicationModule().getKeyboardShortcutsHandler().reset();
|
||||
preferences.edit().putBoolean(KEY_KEYBOARD_SHORTCUT_INITIALIZED, true).apply();
|
||||
}
|
||||
return mKeyboardShortcutsHandler;
|
||||
}
|
||||
|
||||
public MultiSelectManager getMultiSelectManager() {
|
||||
if (mMultiSelectManager != null) return mMultiSelectManager;
|
||||
return mMultiSelectManager = new MultiSelectManager();
|
||||
}
|
||||
|
||||
public SQLiteDatabase getSQLiteDatabase() {
|
||||
if (mDatabase != null) return mDatabase;
|
||||
|
@ -270,14 +251,9 @@ public class TwidereApplication extends MultiDexApplication implements Constants
|
|||
}
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public HotMobiLogger getHotMobiLogger() {
|
||||
if (mHotMobiLogger != null) return mHotMobiLogger;
|
||||
return mHotMobiLogger = new HotMobiLogger(this);
|
||||
}
|
||||
|
||||
public ApplicationModule getApplicationModule() {
|
||||
if (mApplicationModule != null) return mApplicationModule;
|
||||
return mApplicationModule = new ApplicationModule(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@ import android.content.SharedPreferences;
|
|||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.support.annotation.Nullable;
|
||||
|
@ -39,9 +38,8 @@ import android.widget.CompoundButton.OnCheckedChangeListener;
|
|||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.model.ParcelableAccount;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
|
||||
public abstract class BaseAccountPreferenceFragment extends PreferenceFragment implements Constants,
|
||||
public abstract class BaseAccountPreferenceFragment extends BasePreferenceFragment implements Constants,
|
||||
OnCheckedChangeListener, OnSharedPreferenceChangeListener {
|
||||
|
||||
@Override
|
||||
|
@ -59,9 +57,8 @@ public abstract class BaseAccountPreferenceFragment extends PreferenceFragment i
|
|||
final Activity activity = getActivity();
|
||||
final Intent intent = activity.getIntent();
|
||||
if (account != null && intent.hasExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT)) {
|
||||
final UserColorNameManager manager = UserColorNameManager.getInstance(activity);
|
||||
final boolean nameFirst = prefs.getBoolean(KEY_NAME_FIRST, true);
|
||||
final String name = manager.getDisplayName(account.account_id, account.name,
|
||||
final String name = mUserColorNameManager.getDisplayName(account.account_id, account.name,
|
||||
account.screen_name, nameFirst, false);
|
||||
activity.setTitle(name);
|
||||
}
|
||||
|
|
|
@ -28,52 +28,61 @@ import android.content.SharedPreferences;
|
|||
|
||||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler;
|
||||
import org.mariotaku.twidere.util.dagger.ApplicationModule;
|
||||
import org.mariotaku.twidere.util.dagger.DaggerGeneralComponent;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class BaseDialogFragment extends DialogFragment implements Constants {
|
||||
@Inject
|
||||
protected KeyboardShortcutsHandler mKeyboardShortcutsHandler;
|
||||
|
||||
public BaseDialogFragment() {
|
||||
@Override
|
||||
public void onAttach(Activity activity) {
|
||||
super.onAttach(activity);
|
||||
DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(activity)).build().inject(this);
|
||||
}
|
||||
|
||||
}
|
||||
public TwidereApplication getApplication() {
|
||||
final Activity activity = getActivity();
|
||||
if (activity != null) return (TwidereApplication) activity.getApplication();
|
||||
return null;
|
||||
}
|
||||
|
||||
public TwidereApplication getApplication() {
|
||||
final Activity activity = getActivity();
|
||||
if (activity != null) return (TwidereApplication) activity.getApplication();
|
||||
return null;
|
||||
}
|
||||
public ContentResolver getContentResolver() {
|
||||
final Activity activity = getActivity();
|
||||
if (activity != null) return activity.getContentResolver();
|
||||
return null;
|
||||
}
|
||||
|
||||
public ContentResolver getContentResolver() {
|
||||
final Activity activity = getActivity();
|
||||
if (activity != null) return activity.getContentResolver();
|
||||
return null;
|
||||
}
|
||||
public SharedPreferences getSharedPreferences(final String name, final int mode) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity != null) return activity.getSharedPreferences(name, mode);
|
||||
return null;
|
||||
}
|
||||
|
||||
public SharedPreferences getSharedPreferences(final String name, final int mode) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity != null) return activity.getSharedPreferences(name, mode);
|
||||
return null;
|
||||
}
|
||||
public Object getSystemService(final String name) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity != null) return activity.getSystemService(name);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Object getSystemService(final String name) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity != null) return activity.getSystemService(name);
|
||||
return null;
|
||||
}
|
||||
public void registerReceiver(final BroadcastReceiver receiver, final IntentFilter filter) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
activity.registerReceiver(receiver, filter);
|
||||
}
|
||||
|
||||
public void registerReceiver(final BroadcastReceiver receiver, final IntentFilter filter) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
activity.registerReceiver(receiver, filter);
|
||||
}
|
||||
public void setProgressBarIndeterminateVisibility(final boolean visible) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
activity.setProgressBarIndeterminateVisibility(visible);
|
||||
}
|
||||
|
||||
public void setProgressBarIndeterminateVisibility(final boolean visible) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
activity.setProgressBarIndeterminateVisibility(visible);
|
||||
}
|
||||
|
||||
public void unregisterReceiver(final BroadcastReceiver receiver) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
activity.unregisterReceiver(receiver);
|
||||
}
|
||||
public void unregisterReceiver(final BroadcastReceiver receiver) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
activity.unregisterReceiver(receiver);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,7 +61,6 @@ import org.mariotaku.twidere.R;
|
|||
import org.mariotaku.twidere.activity.support.UserListSelectorActivity;
|
||||
import org.mariotaku.twidere.adapter.SourceAutoCompleteAdapter;
|
||||
import org.mariotaku.twidere.adapter.UserHashtagAutoCompleteAdapter;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.fragment.support.AbsContentListViewFragment;
|
||||
import org.mariotaku.twidere.fragment.support.BaseSupportDialogFragment;
|
||||
import org.mariotaku.twidere.model.ParcelableUser;
|
||||
|
@ -71,6 +70,10 @@ import org.mariotaku.twidere.util.ParseUtils;
|
|||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.Utils;
|
||||
import org.mariotaku.twidere.util.dagger.ApplicationModule;
|
||||
import org.mariotaku.twidere.util.dagger.DaggerGeneralComponent;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import static org.mariotaku.twidere.util.Utils.getDefaultAccountId;
|
||||
|
||||
|
@ -401,19 +404,20 @@ public abstract class BaseFiltersFragment extends AbsContentListViewFragment<Sim
|
|||
}
|
||||
}
|
||||
|
||||
private static final class FilterUsersListAdapter extends SimpleCursorAdapter {
|
||||
public static final class FilterUsersListAdapter extends SimpleCursorAdapter {
|
||||
|
||||
private final UserColorNameManager mUserColorNameManager;
|
||||
@Inject
|
||||
UserColorNameManager mUserColorNameManager;
|
||||
|
||||
private final boolean mNameFirst;
|
||||
private int mUserIdIdx, mNameIdx, mScreenNameIdx;
|
||||
|
||||
public FilterUsersListAdapter(final Context context) {
|
||||
FilterUsersListAdapter(final Context context) {
|
||||
super(context, android.R.layout.simple_list_item_activated_1, null, new String[0], new int[0], 0);
|
||||
DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(context)).build().inject(this);
|
||||
final SharedPreferences prefs = context.getSharedPreferences(SHARED_PREFERENCES_NAME,
|
||||
Context.MODE_PRIVATE);
|
||||
mNameFirst = prefs.getBoolean(KEY_NAME_FIRST, true);
|
||||
mUserColorNameManager = TwidereApplication.getInstance(context).getUserColorNameManager();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -28,10 +28,9 @@ import android.content.IntentFilter;
|
|||
import android.content.SharedPreferences;
|
||||
|
||||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.activity.support.BaseAppCompatActivity;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.MultiSelectManager;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.dagger.ApplicationModule;
|
||||
import org.mariotaku.twidere.util.dagger.DaggerGeneralComponent;
|
||||
|
||||
|
@ -41,6 +40,8 @@ public class BaseFragment extends Fragment implements Constants {
|
|||
|
||||
@Inject
|
||||
protected AsyncTwitterWrapper mTwitterWrapper;
|
||||
@Inject
|
||||
protected SharedPreferencesWrapper mPreferences;
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
|
@ -60,11 +61,6 @@ public class BaseFragment extends Fragment implements Constants {
|
|||
return null;
|
||||
}
|
||||
|
||||
public MultiSelectManager getMultiSelectManager() {
|
||||
final TwidereApplication app = getApplication();
|
||||
return app != null ? app.getMultiSelectManager() : null;
|
||||
}
|
||||
|
||||
public SharedPreferences getSharedPreferences(final String name, final int mode) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity != null) return activity.getSharedPreferences(name, mode);
|
||||
|
@ -83,13 +79,6 @@ public class BaseFragment extends Fragment implements Constants {
|
|||
activity.registerReceiver(receiver, filter);
|
||||
}
|
||||
|
||||
public void setProgressBarIndeterminateVisibility(final boolean visible) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity instanceof BaseAppCompatActivity) {
|
||||
activity.setProgressBarIndeterminateVisibility(visible);
|
||||
}
|
||||
}
|
||||
|
||||
public void unregisterReceiver(final BroadcastReceiver receiver) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
|
|
|
@ -60,10 +60,6 @@ public class BaseListFragment extends ListFragment implements Constants, OnScrol
|
|||
return null;
|
||||
}
|
||||
|
||||
public final MultiSelectManager getMultiSelectManager() {
|
||||
return getApplication().getMultiSelectManager();
|
||||
}
|
||||
|
||||
public final SharedPreferences getSharedPreferences(final String name, final int mode) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity != null) return activity.getSharedPreferences(name, mode);
|
||||
|
|
|
@ -19,13 +19,31 @@
|
|||
|
||||
package org.mariotaku.twidere.fragment;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceFragment;
|
||||
|
||||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.dagger.ApplicationModule;
|
||||
import org.mariotaku.twidere.util.dagger.DaggerGeneralComponent;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class BasePreferenceFragment extends PreferenceFragment implements Constants {
|
||||
|
||||
@Inject
|
||||
protected KeyboardShortcutsHandler mKeyboardShortcutHandler;
|
||||
@Inject
|
||||
protected UserColorNameManager mUserColorNameManager;
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(context)).build().inject(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(final Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
|
|
|
@ -95,7 +95,6 @@ public class CustomTabsFragment extends BaseFragment implements LoaderCallbacks<
|
|||
private View mListContainer, mProgressContainer;
|
||||
private TextView mEmptyText;
|
||||
private ImageView mEmptyIcon;
|
||||
private SharedPreferencesWrapper mPreferences;
|
||||
|
||||
|
||||
@Override
|
||||
|
@ -115,7 +114,6 @@ public class CustomTabsFragment extends BaseFragment implements LoaderCallbacks<
|
|||
@Override
|
||||
public void onActivityCreated(final Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
mPreferences = SharedPreferencesWrapper.getInstance(getActivity(), SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
setHasOptionsMenu(true);
|
||||
mResolver = getContentResolver();
|
||||
final View view = getView();
|
||||
|
|
|
@ -50,7 +50,6 @@ import android.widget.TextView;
|
|||
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.activity.KeyboardShortcutPreferenceCompatActivity;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.constant.KeyboardShortcutConstants;
|
||||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler;
|
||||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler.KeyboardShortcutSpec;
|
||||
|
@ -60,14 +59,11 @@ import org.mariotaku.twidere.util.KeyboardShortcutsHandler.KeyboardShortcutSpec;
|
|||
*/
|
||||
public class KeyboardShortcutsFragment extends BasePreferenceFragment implements KeyboardShortcutConstants {
|
||||
|
||||
private KeyboardShortcutsHandler mKeyboardShortcutHandler;
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
setHasOptionsMenu(true);
|
||||
final Activity activity = getActivity();
|
||||
mKeyboardShortcutHandler = TwidereApplication.getInstance(activity).getKeyboardShortcutsHandler();
|
||||
final PreferenceScreen defaultScreen = getPreferenceScreen();
|
||||
final PreferenceScreen preferenceScreen;
|
||||
if (defaultScreen != null) {
|
||||
|
@ -312,13 +308,12 @@ public class KeyboardShortcutsFragment extends BasePreferenceFragment implements
|
|||
|
||||
}
|
||||
|
||||
public static class ResetKeyboardShortcutConfirmDialogFragment extends DialogFragment implements OnClickListener {
|
||||
public static class ResetKeyboardShortcutConfirmDialogFragment extends BaseDialogFragment implements OnClickListener {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
switch (which) {
|
||||
case DialogInterface.BUTTON_POSITIVE: {
|
||||
TwidereApplication app = TwidereApplication.getInstance(getActivity());
|
||||
app.getKeyboardShortcutsHandler().reset();
|
||||
mKeyboardShortcutsHandler.reset();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -87,7 +87,6 @@ import org.mariotaku.twidere.activity.support.HomeActivity;
|
|||
import org.mariotaku.twidere.activity.support.QuickSearchBarActivity;
|
||||
import org.mariotaku.twidere.adapter.ArrayAdapter;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.constant.SharedPreferenceConstants;
|
||||
import org.mariotaku.twidere.menu.support.AccountToggleProvider;
|
||||
import org.mariotaku.twidere.model.ParcelableAccount;
|
||||
import org.mariotaku.twidere.provider.TwidereDataStore.Accounts;
|
||||
|
@ -102,12 +101,16 @@ import org.mariotaku.twidere.util.TransitionUtils;
|
|||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.Utils;
|
||||
import org.mariotaku.twidere.util.content.SupportFragmentReloadCursorObserver;
|
||||
import org.mariotaku.twidere.util.dagger.ApplicationModule;
|
||||
import org.mariotaku.twidere.util.dagger.DaggerGeneralComponent;
|
||||
import org.mariotaku.twidere.view.ShapedImageView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class AccountsDashboardFragment extends BaseSupportFragment implements LoaderCallbacks<Cursor>,
|
||||
OnSharedPreferenceChangeListener, ImageLoadingListener, OnClickListener, KeyboardShortcutCallback, AdapterView.OnItemClickListener {
|
||||
|
||||
|
@ -140,8 +143,11 @@ public class AccountsDashboardFragment extends BaseSupportFragment implements Lo
|
|||
final ContentResolver cr = getContentResolver();
|
||||
if (cr == null) return;
|
||||
final Cursor c = cr.query(Accounts.CONTENT_URI, Accounts.COLUMNS, null, null, Accounts.SORT_POSITION);
|
||||
updateAccountProviderData(c);
|
||||
c.close();
|
||||
try {
|
||||
updateAccountProviderData(c);
|
||||
} finally {
|
||||
Utils.closeSilently(c);
|
||||
}
|
||||
super.onChange(selfChange, uri);
|
||||
}
|
||||
};
|
||||
|
@ -255,7 +261,8 @@ public class AccountsDashboardFragment extends BaseSupportFragment implements Lo
|
|||
updateAccountProviderData(data);
|
||||
}
|
||||
|
||||
private void updateAccountProviderData(final Cursor cursor) {
|
||||
private void updateAccountProviderData(@Nullable final Cursor cursor) {
|
||||
if (cursor == null) return;
|
||||
final Menu menu = mAccountsToggleMenu.getMenu();
|
||||
mAccountActionProvider = (AccountToggleProvider) MenuItemCompat.getActionProvider(menu.findItem(R.id.select_account));
|
||||
final ParcelableAccount[] accounts = ParcelableAccount.getAccounts(cursor);
|
||||
|
@ -655,19 +662,14 @@ public class AccountsDashboardFragment extends BaseSupportFragment implements Lo
|
|||
private void updateDefaultAccountState() {
|
||||
}
|
||||
|
||||
private static final class AccountOptionsAdapter extends OptionItemsAdapter {
|
||||
public static final class AccountOptionsAdapter extends OptionItemsAdapter {
|
||||
|
||||
private final boolean mNameFirst;
|
||||
private final UserColorNameManager mUserColorNameManager;
|
||||
private ParcelableAccount mSelectedAccount;
|
||||
|
||||
public AccountOptionsAdapter(final Context context) {
|
||||
AccountOptionsAdapter(final Context context) {
|
||||
super(context);
|
||||
mUserColorNameManager = UserColorNameManager.getInstance(context);
|
||||
final SharedPreferencesWrapper wrapper = SharedPreferencesWrapper.getInstance(context, SHARED_PREFERENCES_NAME,
|
||||
Context.MODE_PRIVATE, SharedPreferenceConstants.class);
|
||||
assert wrapper != null;
|
||||
mNameFirst = wrapper.getBoolean(KEY_NAME_FIRST);
|
||||
mNameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
}
|
||||
|
||||
public void setSelectedAccount(ParcelableAccount account) {
|
||||
|
@ -849,7 +851,7 @@ public class AccountsDashboardFragment extends BaseSupportFragment implements Lo
|
|||
|
||||
}
|
||||
|
||||
private static class OptionItem {
|
||||
public static class OptionItem {
|
||||
|
||||
private final int name, icon, id;
|
||||
|
||||
|
@ -887,12 +889,17 @@ public class AccountsDashboardFragment extends BaseSupportFragment implements Lo
|
|||
|
||||
}
|
||||
|
||||
private static abstract class OptionItemsAdapter extends ArrayAdapter<OptionItem> {
|
||||
public static abstract class OptionItemsAdapter extends ArrayAdapter<OptionItem> {
|
||||
|
||||
@Inject
|
||||
UserColorNameManager mUserColorNameManager;
|
||||
@Inject
|
||||
SharedPreferencesWrapper mPreferences;
|
||||
private final int mActionIconColor;
|
||||
|
||||
public OptionItemsAdapter(final Context context) {
|
||||
OptionItemsAdapter(final Context context) {
|
||||
super(context, R.layout.list_item_dashboard_menu);
|
||||
DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(context)).build().inject(this);
|
||||
mActionIconColor = ThemeUtils.getThemeForegroundColor(context);
|
||||
}
|
||||
|
||||
|
|
|
@ -34,14 +34,12 @@ import android.support.v7.app.AlertDialog;
|
|||
import com.twitter.Extractor;
|
||||
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.constant.SharedPreferenceConstants;
|
||||
import org.mariotaku.twidere.model.ParcelableStatus;
|
||||
import org.mariotaku.twidere.model.ParcelableUserMention;
|
||||
import org.mariotaku.twidere.provider.TwidereDataStore.Filters;
|
||||
import org.mariotaku.twidere.util.ContentValuesCreator;
|
||||
import org.mariotaku.twidere.util.HtmlEscapeHelper;
|
||||
import org.mariotaku.twidere.util.ParseUtils;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.content.ContentResolverUtils;
|
||||
|
@ -120,23 +118,18 @@ public class AddStatusFilterDialogFragment extends BaseSupportDialogFragment imp
|
|||
final AlertDialog.Builder builder = new AlertDialog.Builder(wrapped);
|
||||
mFilterItems = getFilterItemsInfo();
|
||||
final String[] entries = new String[mFilterItems.length];
|
||||
final UserColorNameManager manager = UserColorNameManager.getInstance(getActivity());
|
||||
final SharedPreferencesWrapper prefs = SharedPreferencesWrapper.getInstance(getActivity(),
|
||||
SharedPreferencesWrapper.SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE,
|
||||
SharedPreferenceConstants.class);
|
||||
assert prefs != null;
|
||||
final boolean nameFirst = prefs.getBoolean(KEY_NAME_FIRST);
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
for (int i = 0, j = entries.length; i < j; i++) {
|
||||
final FilterItemInfo info = mFilterItems[i];
|
||||
switch (info.type) {
|
||||
case FilterItemInfo.FILTER_TYPE_USER:
|
||||
entries[i] = getString(R.string.user_filter_name, getName(manager, info.value, nameFirst));
|
||||
entries[i] = getString(R.string.user_filter_name, getName(mUserColorNameManager, info.value, nameFirst));
|
||||
break;
|
||||
case FilterItemInfo.FILTER_TYPE_KEYWORD:
|
||||
entries[i] = getString(R.string.keyword_filter_name, getName(manager, info.value, nameFirst));
|
||||
entries[i] = getString(R.string.keyword_filter_name, getName(mUserColorNameManager, info.value, nameFirst));
|
||||
break;
|
||||
case FilterItemInfo.FILTER_TYPE_SOURCE:
|
||||
entries[i] = getString(R.string.source_filter_name, getName(manager, info.value, nameFirst));
|
||||
entries[i] = getString(R.string.source_filter_name, getName(mUserColorNameManager, info.value, nameFirst));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -151,6 +144,7 @@ public class AddStatusFilterDialogFragment extends BaseSupportDialogFragment imp
|
|||
final Bundle args = getArguments();
|
||||
if (args == null || !args.containsKey(EXTRA_STATUS)) return new FilterItemInfo[0];
|
||||
final ParcelableStatus status = args.getParcelable(EXTRA_STATUS);
|
||||
if (status == null) return new FilterItemInfo[0];
|
||||
final ArrayList<FilterItemInfo> list = new ArrayList<>();
|
||||
if (status.is_retweet) {
|
||||
list.add(new FilterItemInfo(FilterItemInfo.FILTER_TYPE_USER, new UserItem(status.retweeted_by_user_id,
|
||||
|
|
|
@ -30,6 +30,8 @@ import android.support.v4.app.DialogFragment;
|
|||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.dagger.ApplicationModule;
|
||||
import org.mariotaku.twidere.util.dagger.DaggerGeneralComponent;
|
||||
|
||||
|
@ -37,9 +39,12 @@ import javax.inject.Inject;
|
|||
|
||||
public class BaseSupportDialogFragment extends DialogFragment implements Constants {
|
||||
|
||||
public BaseSupportDialogFragment() {
|
||||
|
||||
}
|
||||
@Inject
|
||||
protected AsyncTwitterWrapper mTwitterWrapper;
|
||||
@Inject
|
||||
protected UserColorNameManager mUserColorNameManager;
|
||||
@Inject
|
||||
protected SharedPreferencesWrapper mPreferences;
|
||||
|
||||
public TwidereApplication getApplication() {
|
||||
final Activity activity = getActivity();
|
||||
|
@ -65,9 +70,6 @@ public class BaseSupportDialogFragment extends DialogFragment implements Constan
|
|||
return null;
|
||||
}
|
||||
|
||||
@Inject
|
||||
protected AsyncTwitterWrapper mTwitterWrapper;
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
|
@ -80,12 +82,6 @@ public class BaseSupportDialogFragment extends DialogFragment implements Constan
|
|||
activity.registerReceiver(receiver, filter);
|
||||
}
|
||||
|
||||
public void setProgressBarIndeterminateVisibility(final boolean visible) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
activity.setProgressBarIndeterminateVisibility(visible);
|
||||
}
|
||||
|
||||
public void unregisterReceiver(final BroadcastReceiver receiver) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
|
|
|
@ -48,7 +48,9 @@ import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
|||
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||
import org.mariotaku.twidere.util.MultiSelectManager;
|
||||
import org.mariotaku.twidere.util.ReadStateManager;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.ThemedLayoutInflaterFactory;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.VideoLoader;
|
||||
import org.mariotaku.twidere.util.dagger.ApplicationModule;
|
||||
import org.mariotaku.twidere.util.dagger.DaggerGeneralComponent;
|
||||
|
@ -57,6 +59,7 @@ import javax.inject.Inject;
|
|||
|
||||
public class BaseSupportFragment extends Fragment implements IBaseFragment, Constants {
|
||||
|
||||
// Utility classes
|
||||
@Inject
|
||||
protected AsyncTwitterWrapper mTwitterWrapper;
|
||||
@Inject
|
||||
|
@ -69,6 +72,12 @@ public class BaseSupportFragment extends Fragment implements IBaseFragment, Cons
|
|||
protected Bus mBus;
|
||||
@Inject
|
||||
protected AsyncTaskManager mAsyncTaskManager;
|
||||
@Inject
|
||||
protected MultiSelectManager mMultiSelectManager;
|
||||
@Inject
|
||||
protected UserColorNameManager mUserColorNameManager;
|
||||
@Inject
|
||||
protected SharedPreferencesWrapper mPreferences;
|
||||
|
||||
public BaseSupportFragment() {
|
||||
|
||||
|
@ -100,10 +109,6 @@ public class BaseSupportFragment extends Fragment implements IBaseFragment, Cons
|
|||
return null;
|
||||
}
|
||||
|
||||
public MultiSelectManager getMultiSelectManager() {
|
||||
return getApplication() != null ? getApplication().getMultiSelectManager() : null;
|
||||
}
|
||||
|
||||
public SharedPreferences getSharedPreferences(final String name, final int mode) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity != null) return activity.getSharedPreferences(name, mode);
|
||||
|
|
|
@ -29,12 +29,9 @@ import android.support.v4.app.FragmentManager;
|
|||
import android.support.v7.app.AlertDialog;
|
||||
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.constant.SharedPreferenceConstants;
|
||||
import org.mariotaku.twidere.model.ParcelableUser;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
|
||||
public class CreateUserBlockDialogFragment extends BaseSupportDialogFragment implements DialogInterface.OnClickListener {
|
||||
|
||||
|
@ -62,12 +59,8 @@ public class CreateUserBlockDialogFragment extends BaseSupportDialogFragment imp
|
|||
final AlertDialog.Builder builder = new AlertDialog.Builder(wrapped);
|
||||
final ParcelableUser user = getUser();
|
||||
if (user != null) {
|
||||
final UserColorNameManager manager = UserColorNameManager.getInstance(activity);
|
||||
final SharedPreferencesWrapper prefs = SharedPreferencesWrapper.getInstance(activity,
|
||||
SharedPreferencesWrapper.SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE,
|
||||
SharedPreferenceConstants.class);
|
||||
final boolean nameFirst = prefs.getBoolean(KEY_NAME_FIRST);
|
||||
final String displayName = manager.getDisplayName(user, nameFirst, false);
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
final String displayName = mUserColorNameManager.getDisplayName(user, nameFirst, false);
|
||||
builder.setTitle(getString(R.string.block_user, displayName));
|
||||
builder.setMessage(getString(R.string.block_user_confirm_message, displayName));
|
||||
}
|
||||
|
|
|
@ -29,12 +29,9 @@ import android.support.v4.app.FragmentManager;
|
|||
import android.support.v7.app.AlertDialog;
|
||||
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.constant.SharedPreferenceConstants;
|
||||
import org.mariotaku.twidere.model.ParcelableUser;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
|
||||
public class CreateUserMuteDialogFragment extends BaseSupportDialogFragment implements DialogInterface.OnClickListener {
|
||||
|
||||
|
@ -62,12 +59,8 @@ public class CreateUserMuteDialogFragment extends BaseSupportDialogFragment impl
|
|||
final AlertDialog.Builder builder = new AlertDialog.Builder(wrapped);
|
||||
final ParcelableUser user = getUser();
|
||||
if (user != null) {
|
||||
final UserColorNameManager manager = UserColorNameManager.getInstance(activity);
|
||||
final SharedPreferencesWrapper prefs = SharedPreferencesWrapper.getInstance(activity,
|
||||
SharedPreferencesWrapper.SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE,
|
||||
SharedPreferenceConstants.class);
|
||||
final boolean nameFirst = prefs.getBoolean(KEY_NAME_FIRST);
|
||||
final String displayName = manager.getDisplayName(user, nameFirst, false);
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
final String displayName = mUserColorNameManager.getDisplayName(user, nameFirst, false);
|
||||
builder.setTitle(getString(R.string.mute_user, displayName));
|
||||
builder.setMessage(getString(R.string.mute_user_confirm_message, displayName));
|
||||
}
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
package org.mariotaku.twidere.fragment.support;
|
||||
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
|
@ -29,15 +28,13 @@ import android.os.Parcelable;
|
|||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.FragmentActivity;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.constant.SharedPreferenceConstants;
|
||||
import org.mariotaku.twidere.model.ParcelableUser;
|
||||
import org.mariotaku.twidere.model.ParcelableUserList;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
|
||||
public class DeleteUserListMembersDialogFragment extends BaseSupportDialogFragment implements
|
||||
DialogInterface.OnClickListener {
|
||||
|
@ -70,12 +67,8 @@ public class DeleteUserListMembersDialogFragment extends BaseSupportDialogFragme
|
|||
if (users == null || userList == null) throw new NullPointerException();
|
||||
if (users.length == 1) {
|
||||
final ParcelableUser user = users[0];
|
||||
final UserColorNameManager manager = UserColorNameManager.getInstance(activity);
|
||||
final SharedPreferencesWrapper prefs = SharedPreferencesWrapper.getInstance(activity,
|
||||
SharedPreferencesWrapper.SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE,
|
||||
SharedPreferenceConstants.class);
|
||||
final boolean nameFirst = prefs.getBoolean(KEY_NAME_FIRST);
|
||||
final String displayName = manager.getDisplayName(user, nameFirst, false);
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
final String displayName = mUserColorNameManager.getDisplayName(user, nameFirst, false);
|
||||
builder.setTitle(getString(R.string.delete_user, displayName));
|
||||
builder.setMessage(getString(R.string.delete_user_from_list_confirm, displayName, userList.name));
|
||||
} else {
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
package org.mariotaku.twidere.fragment.support;
|
||||
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
|
@ -27,14 +26,12 @@ import android.os.Bundle;
|
|||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.FragmentActivity;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.constant.SharedPreferenceConstants;
|
||||
import org.mariotaku.twidere.model.ParcelableUser;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
|
||||
public class DestroyFriendshipDialogFragment extends BaseSupportDialogFragment implements
|
||||
DialogInterface.OnClickListener {
|
||||
|
@ -63,12 +60,8 @@ public class DestroyFriendshipDialogFragment extends BaseSupportDialogFragment i
|
|||
final AlertDialog.Builder builder = new AlertDialog.Builder(wrapped);
|
||||
final ParcelableUser user = getUser();
|
||||
if (user != null) {
|
||||
final UserColorNameManager manager = UserColorNameManager.getInstance(activity);
|
||||
final SharedPreferencesWrapper prefs = SharedPreferencesWrapper.getInstance(activity,
|
||||
SharedPreferencesWrapper.SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE,
|
||||
SharedPreferenceConstants.class);
|
||||
final boolean nameFirst = prefs.getBoolean(KEY_NAME_FIRST);
|
||||
final String displayName = manager.getDisplayName(user, nameFirst, true);
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
final String displayName = mUserColorNameManager.getDisplayName(user, nameFirst, true);
|
||||
builder.setTitle(getString(R.string.unfollow_user, displayName));
|
||||
builder.setMessage(getString(R.string.unfollow_user_confirm_message, displayName));
|
||||
}
|
||||
|
|
|
@ -69,6 +69,8 @@ import java.util.Collections;
|
|||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import static org.mariotaku.twidere.util.Utils.openMessageConversation;
|
||||
|
||||
public class DirectMessagesFragment extends AbsContentRecyclerViewFragment<MessageEntriesAdapter>
|
||||
|
@ -78,8 +80,6 @@ public class DirectMessagesFragment extends AbsContentRecyclerViewFragment<Messa
|
|||
private final SupportFragmentReloadCursorObserver mReloadContentObserver = new SupportFragmentReloadCursorObserver(
|
||||
this, 0, this);
|
||||
|
||||
// Utility classes
|
||||
private MultiSelectManager mMultiSelectManager;
|
||||
private RemoveUnreadCountsTask mRemoveUnreadCountsTask;
|
||||
private RecyclerViewNavigationHelper mNavigationHelper;
|
||||
|
||||
|
@ -247,7 +247,6 @@ public class DirectMessagesFragment extends AbsContentRecyclerViewFragment<Messa
|
|||
final View view = getView();
|
||||
if (view == null) throw new AssertionError();
|
||||
final Context viewContext = view.getContext();
|
||||
mMultiSelectManager = getMultiSelectManager();
|
||||
final MessageEntriesAdapter adapter = getAdapter();
|
||||
final RecyclerView recyclerView = getRecyclerView();
|
||||
final LinearLayoutManager layoutManager = getLayoutManager();
|
||||
|
|
|
@ -165,7 +165,6 @@ public class MessagesConversationFragment extends BaseSupportFragment implements
|
|||
private TwidereValidator mValidator;
|
||||
private SharedPreferencesWrapper mPreferences;
|
||||
private SharedPreferences mMessageDrafts;
|
||||
private UserColorNameManager mUserColorNameManager;
|
||||
private EffectViewHelper mEffectHelper;
|
||||
|
||||
// Views
|
||||
|
@ -231,7 +230,6 @@ public class MessagesConversationFragment extends BaseSupportFragment implements
|
|||
final BaseAppCompatActivity activity = (BaseAppCompatActivity) getActivity();
|
||||
mPreferences = SharedPreferencesWrapper.getInstance(activity, SHARED_PREFERENCES_NAME,
|
||||
Context.MODE_PRIVATE, SharedPreferenceConstants.class);
|
||||
mUserColorNameManager = UserColorNameManager.getInstance(activity);
|
||||
mMessageDrafts = getSharedPreferences(MESSAGE_DRAFTS_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
mValidator = new TwidereValidator(activity);
|
||||
|
||||
|
@ -804,7 +802,6 @@ public class MessagesConversationFragment extends BaseSupportFragment implements
|
|||
// if (twitter == null || !getUserVisibleHint()) return;
|
||||
// final boolean refreshing = twitter.isReceivedDirectMessagesRefreshing()
|
||||
// || twitter.isSentDirectMessagesRefreshing();
|
||||
// setProgressBarIndeterminateVisibility(refreshing);
|
||||
// setRefreshing(refreshing);
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
package org.mariotaku.twidere.fragment.support;
|
||||
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
|
@ -27,14 +26,12 @@ import android.os.Bundle;
|
|||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.FragmentActivity;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.constant.SharedPreferenceConstants;
|
||||
import org.mariotaku.twidere.model.ParcelableUser;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
|
||||
public class ReportSpamDialogFragment extends BaseSupportDialogFragment implements DialogInterface.OnClickListener {
|
||||
|
||||
|
@ -62,12 +59,8 @@ public class ReportSpamDialogFragment extends BaseSupportDialogFragment implemen
|
|||
final AlertDialog.Builder builder = new AlertDialog.Builder(wrapped);
|
||||
final ParcelableUser user = getUser();
|
||||
if (user != null) {
|
||||
final UserColorNameManager manager = UserColorNameManager.getInstance(activity);
|
||||
final SharedPreferencesWrapper prefs = SharedPreferencesWrapper.getInstance(activity,
|
||||
SharedPreferencesWrapper.SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE,
|
||||
SharedPreferenceConstants.class);
|
||||
final boolean nameFirst = prefs.getBoolean(KEY_NAME_FIRST);
|
||||
final String displayName = manager.getDisplayName(user, nameFirst, false);
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
final String displayName = mUserColorNameManager.getDisplayName(user, nameFirst, false);
|
||||
builder.setTitle(getString(R.string.report_user, displayName));
|
||||
builder.setMessage(getString(R.string.report_user_confirm_message, displayName));
|
||||
}
|
||||
|
|
|
@ -64,7 +64,6 @@ public class RetweetQuoteDialogFragment extends BaseSupportDialogFragment implem
|
|||
public static final String FRAGMENT_TAG = "retweet_quote";
|
||||
private PopupMenu mPopupMenu;
|
||||
private TwidereValidator mValidator;
|
||||
private SharedPreferencesWrapper mPreferences;
|
||||
|
||||
@Override
|
||||
public void onClick(final DialogInterface dialog, final int which) {
|
||||
|
@ -98,7 +97,6 @@ public class RetweetQuoteDialogFragment extends BaseSupportDialogFragment implem
|
|||
final AlertDialog.Builder builder = new AlertDialog.Builder(wrapped);
|
||||
final Context context = builder.getContext();
|
||||
mValidator = new TwidereValidator(context);
|
||||
mPreferences = SharedPreferencesWrapper.getInstance(context, SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE, SharedPreferenceConstants.class);
|
||||
final LayoutInflater inflater = LayoutInflater.from(context);
|
||||
@SuppressLint("InflateParams") final View view = inflater.inflate(R.layout.dialog_status_quote_retweet, null);
|
||||
final DummyStatusHolderAdapter adapter = new DummyStatusHolderAdapter(context);
|
||||
|
|
|
@ -73,13 +73,12 @@ import org.apache.commons.lang3.ArrayUtils;
|
|||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.activity.support.ColorPickerDialogActivity;
|
||||
import org.mariotaku.twidere.adapter.AbsStatusesAdapter.StatusAdapterListener;
|
||||
import org.mariotaku.twidere.adapter.BaseAdapter;
|
||||
import org.mariotaku.twidere.adapter.BaseRecyclerViewAdapter;
|
||||
import org.mariotaku.twidere.adapter.decorator.DividerItemDecoration;
|
||||
import org.mariotaku.twidere.adapter.iface.IStatusesAdapter;
|
||||
import org.mariotaku.twidere.api.twitter.Twitter;
|
||||
import org.mariotaku.twidere.api.twitter.TwitterException;
|
||||
import org.mariotaku.twidere.api.twitter.model.Paging;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.constant.IntentConstants;
|
||||
import org.mariotaku.twidere.loader.support.ParcelableStatusLoader;
|
||||
import org.mariotaku.twidere.loader.support.StatusRepliesLoader;
|
||||
|
@ -100,7 +99,6 @@ import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
|||
import org.mariotaku.twidere.util.MediaLoadingHandler;
|
||||
import org.mariotaku.twidere.util.RecyclerViewNavigationHelper;
|
||||
import org.mariotaku.twidere.util.RecyclerViewUtils;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.StatusActionModeCallback;
|
||||
import org.mariotaku.twidere.util.StatusAdapterLinkClickHandler;
|
||||
import org.mariotaku.twidere.util.StatusLinkClickHandler;
|
||||
|
@ -1038,7 +1036,7 @@ public class StatusFragment extends BaseSupportFragment implements LoaderCallbac
|
|||
}
|
||||
}
|
||||
|
||||
private static class StatusAdapter extends BaseAdapter<ViewHolder> implements IStatusesAdapter<List<ParcelableStatus>> {
|
||||
private static class StatusAdapter extends BaseRecyclerViewAdapter<ViewHolder> implements IStatusesAdapter<List<ParcelableStatus>> {
|
||||
|
||||
private static final int VIEW_TYPE_LIST_STATUS = 0;
|
||||
private static final int VIEW_TYPE_DETAIL_STATUS = 1;
|
||||
|
@ -1076,7 +1074,6 @@ public class StatusFragment extends BaseSupportFragment implements LoaderCallbac
|
|||
private final boolean mDisplayProfileImage;
|
||||
private final boolean mSensitiveContentEnabled;
|
||||
private final boolean mHideCardActions;
|
||||
private final UserColorNameManager mUserColorNameManager;
|
||||
private boolean mLoadMoreSupported;
|
||||
private boolean mLoadMoreIndicatorVisible;
|
||||
private boolean mDetailMediaExpanded;
|
||||
|
@ -1092,27 +1089,24 @@ public class StatusFragment extends BaseSupportFragment implements LoaderCallbac
|
|||
setHasStableIds(true);
|
||||
final Context context = fragment.getActivity();
|
||||
final Resources res = context.getResources();
|
||||
final SharedPreferencesWrapper preferences = SharedPreferencesWrapper.getInstance(context,
|
||||
SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
mItemCounts = new int[ITEM_TYPES_SUM];
|
||||
// There's always a space at the end of the list
|
||||
mItemCounts[ITEM_IDX_SPACE] = 1;
|
||||
mFragment = fragment;
|
||||
mContext = context;
|
||||
mInflater = LayoutInflater.from(context);
|
||||
mUserColorNameManager = TwidereApplication.getInstance(context).getUserColorNameManager();
|
||||
mMediaLoadingHandler = new MediaLoadingHandler(R.id.media_preview_progress);
|
||||
mCardBackgroundColor = ThemeUtils.getCardBackgroundColor(context, ThemeUtils.getThemeBackgroundOption(context), ThemeUtils.getUserThemeBackgroundAlpha(context));
|
||||
mNameFirst = preferences.getBoolean(KEY_NAME_FIRST, true);
|
||||
mTextSize = preferences.getInt(KEY_TEXT_SIZE, res.getInteger(R.integer.default_text_size));
|
||||
mProfileImageStyle = Utils.getProfileImageStyle(preferences.getString(KEY_PROFILE_IMAGE_STYLE, null));
|
||||
mMediaPreviewStyle = Utils.getMediaPreviewStyle(preferences.getString(KEY_MEDIA_PREVIEW_STYLE, null));
|
||||
mLinkHighlightingStyle = Utils.getLinkHighlightingStyleInt(preferences.getString(KEY_LINK_HIGHLIGHT_OPTION, null));
|
||||
mNameFirst = mPreferences.getBoolean(KEY_NAME_FIRST, true);
|
||||
mTextSize = mPreferences.getInt(KEY_TEXT_SIZE, res.getInteger(R.integer.default_text_size));
|
||||
mProfileImageStyle = Utils.getProfileImageStyle(mPreferences.getString(KEY_PROFILE_IMAGE_STYLE, null));
|
||||
mMediaPreviewStyle = Utils.getMediaPreviewStyle(mPreferences.getString(KEY_MEDIA_PREVIEW_STYLE, null));
|
||||
mLinkHighlightingStyle = Utils.getLinkHighlightingStyleInt(mPreferences.getString(KEY_LINK_HIGHLIGHT_OPTION, null));
|
||||
mIsCompact = compact;
|
||||
mDisplayProfileImage = preferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
mDisplayMediaPreview = preferences.getBoolean(KEY_MEDIA_PREVIEW, false);
|
||||
mSensitiveContentEnabled = preferences.getBoolean(KEY_DISPLAY_SENSITIVE_CONTENTS, false);
|
||||
mHideCardActions = preferences.getBoolean(KEY_HIDE_CARD_ACTIONS, false);
|
||||
mDisplayProfileImage = mPreferences.getBoolean(KEY_DISPLAY_PROFILE_IMAGE, true);
|
||||
mDisplayMediaPreview = mPreferences.getBoolean(KEY_MEDIA_PREVIEW, false);
|
||||
mSensitiveContentEnabled = mPreferences.getBoolean(KEY_DISPLAY_SENSITIVE_CONTENTS, false);
|
||||
mHideCardActions = mPreferences.getBoolean(KEY_HIDE_CARD_ACTIONS, false);
|
||||
if (compact) {
|
||||
mCardLayoutResource = R.layout.card_item_status_compact;
|
||||
} else {
|
||||
|
|
|
@ -37,7 +37,6 @@ import com.squareup.otto.Subscribe;
|
|||
import org.mariotaku.twidere.adapter.TrendsAdapter;
|
||||
import org.mariotaku.twidere.provider.TwidereDataStore.CachedTrends;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.MultiSelectManager;
|
||||
import org.mariotaku.twidere.util.message.TaskStateChangedEvent;
|
||||
|
||||
import static org.mariotaku.twidere.util.Utils.getDefaultAccountId;
|
||||
|
@ -47,7 +46,6 @@ import static org.mariotaku.twidere.util.Utils.openTweetSearch;
|
|||
public class TrendsSuggestionsFragment extends AbsContentListViewFragment<TrendsAdapter>
|
||||
implements LoaderCallbacks<Cursor>, AdapterView.OnItemClickListener {
|
||||
|
||||
private MultiSelectManager mMultiSelectManager;
|
||||
private SharedPreferences mPreferences;
|
||||
|
||||
|
||||
|
@ -57,7 +55,6 @@ public class TrendsSuggestionsFragment extends AbsContentListViewFragment<Trends
|
|||
public void onActivityCreated(final Bundle savedInstanceState) {
|
||||
mPreferences = getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
mMultiSelectManager = getMultiSelectManager();
|
||||
mAccountId = getDefaultAccountId(getActivity());
|
||||
getListView().setOnItemClickListener(this);
|
||||
getLoaderManager().initLoader(0, null, this);
|
||||
|
|
|
@ -98,7 +98,6 @@ import org.mariotaku.twidere.api.twitter.TwitterException;
|
|||
import org.mariotaku.twidere.api.twitter.model.FriendshipUpdate;
|
||||
import org.mariotaku.twidere.api.twitter.model.Relationship;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.constant.SharedPreferenceConstants;
|
||||
import org.mariotaku.twidere.fragment.iface.IBaseFragment.SystemWindowsInsetsCallback;
|
||||
import org.mariotaku.twidere.fragment.iface.RefreshScrollTopInterface;
|
||||
import org.mariotaku.twidere.fragment.iface.SupportFragmentCallback;
|
||||
|
@ -122,13 +121,11 @@ import org.mariotaku.twidere.util.LinkCreator;
|
|||
import org.mariotaku.twidere.util.MathUtils;
|
||||
import org.mariotaku.twidere.util.MenuUtils;
|
||||
import org.mariotaku.twidere.util.ParseUtils;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.TwidereColorUtils;
|
||||
import org.mariotaku.twidere.util.TwidereLinkify;
|
||||
import org.mariotaku.twidere.util.TwidereLinkify.OnLinkClickListener;
|
||||
import org.mariotaku.twidere.util.TwitterAPIFactory;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.Utils;
|
||||
import org.mariotaku.twidere.util.menu.TwidereMenuInfo;
|
||||
import org.mariotaku.twidere.util.message.FriendshipUpdatedEvent;
|
||||
|
@ -173,9 +170,6 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
|
|||
private static final String TAB_TYPE_MEDIA = "media";
|
||||
private static final String TAB_TYPE_FAVORITES = "favorites";
|
||||
|
||||
private UserColorNameManager mUserColorNameManager;
|
||||
private SharedPreferencesWrapper mPreferences;
|
||||
|
||||
private ShapedImageView mProfileImageView;
|
||||
private ImageView mProfileTypeView;
|
||||
private ProfileBannerImageView mProfileBannerView;
|
||||
|
@ -483,7 +477,6 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
|
|||
final FragmentActivity activity = getActivity();
|
||||
if (user == null || user.id <= 0 || activity == null) return;
|
||||
final Resources resources = getResources();
|
||||
final UserColorNameManager manager = UserColorNameManager.getInstance(activity);
|
||||
final LoaderManager lm = getLoaderManager();
|
||||
lm.destroyLoader(LOADER_ID_USER);
|
||||
lm.destroyLoader(LOADER_ID_FRIENDSHIP);
|
||||
|
@ -492,10 +485,10 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
|
|||
mHeaderErrorContainer.setVisibility(View.GONE);
|
||||
mProgressContainer.setVisibility(View.GONE);
|
||||
mUser = user;
|
||||
final int userColor = manager.getUserColor(user.id, true);
|
||||
final int userColor = mUserColorNameManager.getUserColor(user.id, true);
|
||||
mProfileImageView.setBorderColor(userColor != 0 ? userColor : Color.WHITE);
|
||||
mProfileNameContainer.drawEnd(Utils.getAccountColor(activity, user.account_id));
|
||||
final String nick = manager.getUserNickname(user.id, true);
|
||||
final String nick = mUserColorNameManager.getUserNickname(user.id, true);
|
||||
mNameView.setText(TextUtils.isEmpty(nick) ? user.name : getString(R.string.name_with_nickname, user.name, nick));
|
||||
final int typeIconRes = Utils.getUserTypeIconRes(user.is_verified, user.is_protected);
|
||||
if (typeIconRes != 0) {
|
||||
|
@ -538,7 +531,7 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
|
|||
if (relationship == null || relationship.getTargetUserId() != user.id) {
|
||||
getFriendship();
|
||||
}
|
||||
activity.setTitle(manager.getDisplayName(user, mNameFirst, true));
|
||||
activity.setTitle(mUserColorNameManager.getDisplayName(user, mNameFirst, true));
|
||||
|
||||
Calendar cal = Calendar.getInstance();
|
||||
final int currentMonth = cal.get(Calendar.MONTH), currentDay = cal.get(Calendar.DAY_OF_MONTH);
|
||||
|
@ -625,16 +618,15 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
|
|||
@Override
|
||||
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
|
||||
final ParcelableUser user = getUser();
|
||||
final UserColorNameManager manager = UserColorNameManager.getInstance(getActivity());
|
||||
switch (requestCode) {
|
||||
case REQUEST_SET_COLOR: {
|
||||
if (user == null) return;
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
if (data == null) return;
|
||||
final int color = data.getIntExtra(EXTRA_COLOR, Color.TRANSPARENT);
|
||||
manager.setUserColor(mUser.id, color);
|
||||
mUserColorNameManager.setUserColor(mUser.id, color);
|
||||
} else if (resultCode == ColorPickerDialogActivity.RESULT_CLEARED) {
|
||||
manager.clearUserColor(mUser.id);
|
||||
mUserColorNameManager.clearUserColor(mUser.id);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -662,9 +654,11 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Activity activity) {
|
||||
super.onAttach(activity);
|
||||
mTintedStatusContent = (TintedStatusFrameLayout) activity.findViewById(R.id.main_content);
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
if (context instanceof FragmentActivity) {
|
||||
mTintedStatusContent = (TintedStatusFrameLayout) ((FragmentActivity) context).findViewById(R.id.main_content);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -681,8 +675,6 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
|
|||
.registerOnSharedPreferenceChangeListener(this);
|
||||
getSharedPreferences(USER_NICKNAME_PREFERENCES_NAME, Context.MODE_PRIVATE)
|
||||
.registerOnSharedPreferenceChangeListener(this);
|
||||
mUserColorNameManager = UserColorNameManager.getInstance(activity);
|
||||
mPreferences = SharedPreferencesWrapper.getInstance(activity, SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE, SharedPreferenceConstants.class);
|
||||
mNameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
mLocale = getResources().getConfiguration().locale;
|
||||
mCardBackgroundColor = ThemeUtils.getCardBackgroundColor(activity,
|
||||
|
@ -982,8 +974,7 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
|
|||
break;
|
||||
}
|
||||
case R.id.clear_nickname: {
|
||||
final UserColorNameManager manager = UserColorNameManager.getInstance(getActivity());
|
||||
manager.clearUserNickname(user.id);
|
||||
mUserColorNameManager.clearUserNickname(user.id);
|
||||
break;
|
||||
}
|
||||
case R.id.set_nickname: {
|
||||
|
|
|
@ -64,8 +64,6 @@ import org.mariotaku.twidere.api.twitter.Twitter;
|
|||
import org.mariotaku.twidere.api.twitter.TwitterException;
|
||||
import org.mariotaku.twidere.api.twitter.model.UserList;
|
||||
import org.mariotaku.twidere.api.twitter.model.UserListUpdate;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.constant.SharedPreferenceConstants;
|
||||
import org.mariotaku.twidere.fragment.iface.IBaseFragment.SystemWindowsInsetsCallback;
|
||||
import org.mariotaku.twidere.fragment.iface.SupportFragmentCallback;
|
||||
import org.mariotaku.twidere.graphic.EmptyDrawable;
|
||||
|
@ -75,13 +73,9 @@ import org.mariotaku.twidere.model.SingleResponse;
|
|||
import org.mariotaku.twidere.text.validator.UserListNameValidator;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.LinkCreator;
|
||||
import org.mariotaku.twidere.util.OnLinkClickHandler;
|
||||
import org.mariotaku.twidere.util.ParseUtils;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.util.TwidereLinkify;
|
||||
import org.mariotaku.twidere.util.TwitterAPIFactory;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.Utils;
|
||||
import org.mariotaku.twidere.view.TabPagerIndicator;
|
||||
|
||||
|
@ -100,8 +94,6 @@ public class UserListFragment extends BaseSupportFragment implements OnClickList
|
|||
|
||||
private SupportTabsAdapter mPagerAdapter;
|
||||
private boolean mUserListLoaderInitialized;
|
||||
private UserColorNameManager mUserColorNameManager;
|
||||
private SharedPreferencesWrapper mPreferences;
|
||||
|
||||
private ParcelableUserList mUserList;
|
||||
private final BroadcastReceiver mStatusReceiver = new BroadcastReceiver() {
|
||||
|
@ -132,11 +124,6 @@ public class UserListFragment extends BaseSupportFragment implements OnClickList
|
|||
mUserList = userList;
|
||||
|
||||
if (userList != null) {
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
final String displayName = mUserColorNameManager.getDisplayName(userList, nameFirst, false);
|
||||
final String description = userList.description;
|
||||
final TwidereLinkify linkify = new TwidereLinkify(new OnLinkClickHandler(activity,
|
||||
getMultiSelectManager()));
|
||||
activity.setTitle(userList.name);
|
||||
} else {
|
||||
activity.setTitle(R.string.user_list);
|
||||
|
@ -208,14 +195,8 @@ public class UserListFragment extends BaseSupportFragment implements OnClickList
|
|||
public void onActivityCreated(final Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
final FragmentActivity activity = getActivity();
|
||||
final TwidereApplication application = TwidereApplication.getInstance(activity);
|
||||
mUserColorNameManager = application.getUserColorNameManager();
|
||||
mPreferences = SharedPreferencesWrapper.getInstance(activity, SHARED_PREFERENCES_NAME,
|
||||
Context.MODE_PRIVATE, SharedPreferenceConstants.class);
|
||||
|
||||
setHasOptionsMenu(true);
|
||||
|
||||
|
||||
Utils.setNdefPushMessageCallback(activity, new CreateNdefMessageCallback() {
|
||||
|
||||
@Override
|
||||
|
|
|
@ -17,7 +17,7 @@ import android.widget.ImageView;
|
|||
import android.widget.TextView;
|
||||
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.adapter.BaseAdapter;
|
||||
import org.mariotaku.twidere.adapter.BaseRecyclerViewAdapter;
|
||||
import org.mariotaku.twidere.loader.support.MediaTimelineLoader;
|
||||
import org.mariotaku.twidere.model.ParcelableMedia;
|
||||
import org.mariotaku.twidere.model.ParcelableStatus;
|
||||
|
@ -156,7 +156,7 @@ public class UserMediaTimelineFragment extends BaseSupportFragment
|
|||
mAdapter.setData(null);
|
||||
}
|
||||
|
||||
private static class MediaTimelineAdapter extends BaseAdapter<MediaTimelineViewHolder> {
|
||||
private static class MediaTimelineAdapter extends BaseRecyclerViewAdapter<MediaTimelineViewHolder> {
|
||||
|
||||
private final LayoutInflater mInflater;
|
||||
private final MediaLoadingHandler mLoadingHandler;
|
||||
|
|
|
@ -153,12 +153,15 @@ public final class TwidereDataProvider extends ContentProvider implements Consta
|
|||
private PermissionsManager mPermissionsManager;
|
||||
@Nullable
|
||||
private NotificationManager mNotificationManager;
|
||||
private SharedPreferencesWrapper mPreferences;
|
||||
@Inject
|
||||
SharedPreferencesWrapper mPreferences;
|
||||
private ImagePreloader mImagePreloader;
|
||||
@Inject
|
||||
Network mNetwork;
|
||||
@Inject
|
||||
Bus mBus;
|
||||
@Inject
|
||||
UserColorNameManager mUserColorNameManager;
|
||||
private Handler mHandler;
|
||||
|
||||
private boolean mHomeActivityInBackground;
|
||||
|
@ -559,10 +562,10 @@ public final class TwidereDataProvider extends ContentProvider implements Consta
|
|||
@Override
|
||||
public boolean onCreate() {
|
||||
final Context context = getContext();
|
||||
assert context != null;
|
||||
DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(context)).build().inject(this);
|
||||
mHandler = new Handler(Looper.getMainLooper());
|
||||
mDatabaseWrapper = new SQLiteDatabaseWrapper(this);
|
||||
mPreferences = SharedPreferencesWrapper.getInstance(context, SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
mPreferences.registerOnSharedPreferenceChangeListener(this);
|
||||
updatePreferences();
|
||||
mPermissionsManager = new PermissionsManager(context);
|
||||
|
@ -1118,20 +1121,19 @@ public final class TwidereDataProvider extends ContentProvider implements Consta
|
|||
statusesCount, statusesCount);
|
||||
final String notificationContent;
|
||||
userCursor.moveToFirst();
|
||||
final UserColorNameManager manager = UserColorNameManager.getInstance(context);
|
||||
final String displayName = manager.getUserNickname(userCursor.getLong(idxUserId),
|
||||
final String displayName = mUserColorNameManager.getUserNickname(userCursor.getLong(idxUserId),
|
||||
mNameFirst ? userCursor.getString(idxUserName) : userCursor.getString(idxUserScreenName));
|
||||
if (usersCount == 1) {
|
||||
notificationContent = context.getString(R.string.from_name, displayName);
|
||||
} else if (usersCount == 2) {
|
||||
userCursor.moveToPosition(1);
|
||||
final String othersName = manager.getUserNickname(userCursor.getLong(idxUserId),
|
||||
final String othersName = mUserColorNameManager.getUserNickname(userCursor.getLong(idxUserId),
|
||||
mNameFirst ? userCursor.getString(idxUserName) : userCursor.getString(idxUserScreenName));
|
||||
notificationContent = resources.getQuantityString(R.plurals.from_name_and_N_others,
|
||||
usersCount - 1, othersName, usersCount - 1);
|
||||
} else {
|
||||
userCursor.moveToPosition(1);
|
||||
final String othersName = manager.getUserNickname(userCursor.getLong(idxUserId),
|
||||
final String othersName = mUserColorNameManager.getUserNickname(userCursor.getLong(idxUserId),
|
||||
mNameFirst ? userCursor.getString(idxUserName) : userCursor.getString(idxUserScreenName));
|
||||
notificationContent = resources.getString(R.string.from_name_and_N_others, othersName, usersCount - 1);
|
||||
}
|
||||
|
|
|
@ -60,7 +60,8 @@ import static org.mariotaku.twidere.util.Utils.shouldStopAutoRefreshOnBatteryLow
|
|||
|
||||
public class RefreshService extends Service implements Constants {
|
||||
|
||||
private SharedPreferencesWrapper mPreferences;
|
||||
@Inject
|
||||
SharedPreferencesWrapper mPreferences;
|
||||
|
||||
private AlarmManager mAlarmManager;
|
||||
@Inject
|
||||
|
@ -156,7 +157,6 @@ public class RefreshService extends Service implements Constants {
|
|||
DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(this)).build().inject(this);
|
||||
mAlarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
|
||||
final TwidereApplication app = TwidereApplication.getInstance(this);
|
||||
mPreferences = SharedPreferencesWrapper.getInstance(app, SHARED_PREFERENCES_NAME, MODE_PRIVATE);
|
||||
mPendingRefreshHomeTimelineIntent = PendingIntent.getBroadcast(this, 0, new Intent(
|
||||
BROADCAST_REFRESH_HOME_TIMELINE), 0);
|
||||
mPendingRefreshMentionsIntent = PendingIntent.getBroadcast(this, 0, new Intent(BROADCAST_REFRESH_MENTIONS), 0);
|
||||
|
|
|
@ -61,7 +61,6 @@ import org.mariotaku.twidere.api.twitter.model.User;
|
|||
import org.mariotaku.twidere.api.twitter.model.UserList;
|
||||
import org.mariotaku.twidere.api.twitter.model.UserListUpdate;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.constant.SharedPreferenceConstants;
|
||||
import org.mariotaku.twidere.model.ListResponse;
|
||||
import org.mariotaku.twidere.model.ParcelableAccount;
|
||||
import org.mariotaku.twidere.model.ParcelableLocation;
|
||||
|
@ -87,6 +86,7 @@ import org.mariotaku.twidere.task.CacheUsersStatusesTask;
|
|||
import org.mariotaku.twidere.task.ManagedAsyncTask;
|
||||
import org.mariotaku.twidere.util.collection.LongSparseMap;
|
||||
import org.mariotaku.twidere.util.content.ContentResolverUtils;
|
||||
import org.mariotaku.twidere.util.dagger.ApplicationModule;
|
||||
import org.mariotaku.twidere.util.message.FavoriteCreatedEvent;
|
||||
import org.mariotaku.twidere.util.message.FavoriteDestroyedEvent;
|
||||
import org.mariotaku.twidere.util.message.FriendshipUpdatedEvent;
|
||||
|
@ -130,11 +130,10 @@ public class AsyncTwitterWrapper extends TwitterWrapper {
|
|||
|
||||
private CopyOnWriteArraySet<Long> mSendingDraftIds = new CopyOnWriteArraySet<>();
|
||||
|
||||
public AsyncTwitterWrapper(final Context context, final AsyncTaskManager manager, Bus bus) {
|
||||
public AsyncTwitterWrapper(final Context context, final AsyncTaskManager manager, final SharedPreferencesWrapper preferences, final Bus bus) {
|
||||
mContext = context;
|
||||
mAsyncTaskManager = manager;
|
||||
mPreferences = SharedPreferencesWrapper.getInstance(context, SHARED_PREFERENCES_NAME,
|
||||
Context.MODE_PRIVATE, SharedPreferenceConstants.class);
|
||||
mPreferences = preferences;
|
||||
mResolver = context.getContentResolver();
|
||||
mBus = bus;
|
||||
}
|
||||
|
@ -701,7 +700,7 @@ public class AsyncTwitterWrapper extends TwitterWrapper {
|
|||
if (result.hasData()) {
|
||||
final User user = result.getData();
|
||||
final TwidereApplication application = TwidereApplication.getInstance(mContext);
|
||||
final UserColorNameManager manager = application.getUserColorNameManager();
|
||||
final UserColorNameManager manager = ApplicationModule.get(mContext).getUserColorNameManager();
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
final String message = mContext.getString(R.string.accepted_users_follow_request,
|
||||
manager.getDisplayName(user, nameFirst, true));
|
||||
|
@ -756,7 +755,7 @@ public class AsyncTwitterWrapper extends TwitterWrapper {
|
|||
if (users.length == 1) {
|
||||
final ParcelableUser user = users[0];
|
||||
final TwidereApplication application = TwidereApplication.getInstance(mContext);
|
||||
final UserColorNameManager manager = application.getUserColorNameManager();
|
||||
final UserColorNameManager manager = ApplicationModule.get(mContext).getUserColorNameManager();
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
final String displayName = manager.getDisplayName(user.id, user.name, user.screen_name, nameFirst, false);
|
||||
message = mContext.getString(R.string.added_user_to_list, displayName, result.getData().name);
|
||||
|
@ -846,8 +845,7 @@ public class AsyncTwitterWrapper extends TwitterWrapper {
|
|||
@Override
|
||||
protected void onPostExecute(final SingleResponse<ParcelableUser> result) {
|
||||
if (result.hasData()) {
|
||||
final TwidereApplication application = TwidereApplication.getInstance(mContext);
|
||||
final UserColorNameManager manager = application.getUserColorNameManager();
|
||||
final UserColorNameManager manager = ApplicationModule.get(mContext).getUserColorNameManager();
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
final String message = mContext.getString(R.string.blocked_user,
|
||||
manager.getDisplayName(result.getData(), nameFirst, true));
|
||||
|
@ -973,8 +971,7 @@ public class AsyncTwitterWrapper extends TwitterWrapper {
|
|||
if (result.hasData()) {
|
||||
final ParcelableUser user = result.getData();
|
||||
final String message;
|
||||
final TwidereApplication application = TwidereApplication.getInstance(mContext);
|
||||
final UserColorNameManager manager = application.getUserColorNameManager();
|
||||
final UserColorNameManager manager = ApplicationModule.get(mContext).getUserColorNameManager();
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
if (user.is_protected) {
|
||||
message = mContext.getString(R.string.sent_follow_request_to_user,
|
||||
|
@ -1083,8 +1080,7 @@ public class AsyncTwitterWrapper extends TwitterWrapper {
|
|||
@Override
|
||||
protected void onPostExecute(final SingleResponse<ParcelableUser> result) {
|
||||
if (result.hasData()) {
|
||||
final TwidereApplication application = TwidereApplication.getInstance(mContext);
|
||||
final UserColorNameManager manager = application.getUserColorNameManager();
|
||||
final UserColorNameManager manager = ApplicationModule.get(mContext).getUserColorNameManager();
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
final String message = mContext.getString(R.string.muted_user,
|
||||
manager.getDisplayName(result.getData(), nameFirst, true));
|
||||
|
@ -1262,8 +1258,7 @@ public class AsyncTwitterWrapper extends TwitterWrapper {
|
|||
if (succeed) {
|
||||
if (users.length == 1) {
|
||||
final ParcelableUser user = users[0];
|
||||
final TwidereApplication application = TwidereApplication.getInstance(mContext);
|
||||
final UserColorNameManager manager = application.getUserColorNameManager();
|
||||
final UserColorNameManager manager = ApplicationModule.get(mContext).getUserColorNameManager();
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
final String displayName = manager.getDisplayName(user.id, user.name, user.screen_name, nameFirst, false);
|
||||
message = mContext.getString(R.string.deleted_user_from_list, displayName, result.getData().name);
|
||||
|
@ -1321,8 +1316,7 @@ public class AsyncTwitterWrapper extends TwitterWrapper {
|
|||
protected void onPostExecute(final SingleResponse<User> result) {
|
||||
if (result.hasData()) {
|
||||
final User user = result.getData();
|
||||
final TwidereApplication application = TwidereApplication.getInstance(mContext);
|
||||
final UserColorNameManager manager = application.getUserColorNameManager();
|
||||
final UserColorNameManager manager = ApplicationModule.get(mContext).getUserColorNameManager();
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
final String message = mContext.getString(R.string.denied_users_follow_request,
|
||||
manager.getDisplayName(user, nameFirst, true));
|
||||
|
@ -1366,8 +1360,7 @@ public class AsyncTwitterWrapper extends TwitterWrapper {
|
|||
@Override
|
||||
protected void onPostExecute(final SingleResponse<ParcelableUser> result) {
|
||||
if (result.hasData()) {
|
||||
final TwidereApplication application = TwidereApplication.getInstance(mContext);
|
||||
final UserColorNameManager manager = application.getUserColorNameManager();
|
||||
final UserColorNameManager manager = ApplicationModule.get(mContext).getUserColorNameManager();
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
final String message = mContext.getString(R.string.unblocked_user,
|
||||
manager.getDisplayName(result.getData(), nameFirst, true));
|
||||
|
@ -1611,8 +1604,7 @@ public class AsyncTwitterWrapper extends TwitterWrapper {
|
|||
@Override
|
||||
protected void onPostExecute(final SingleResponse<ParcelableUser> result) {
|
||||
if (result.hasData()) {
|
||||
final TwidereApplication application = TwidereApplication.getInstance(mContext);
|
||||
final UserColorNameManager manager = application.getUserColorNameManager();
|
||||
final UserColorNameManager manager = ApplicationModule.get(mContext).getUserColorNameManager();
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
final String message = mContext.getString(R.string.unfollowed_user,
|
||||
manager.getDisplayName(result.getData(), nameFirst, true));
|
||||
|
@ -1654,8 +1646,7 @@ public class AsyncTwitterWrapper extends TwitterWrapper {
|
|||
@Override
|
||||
protected void onPostExecute(final SingleResponse<ParcelableUser> result) {
|
||||
if (result.hasData()) {
|
||||
final TwidereApplication application = TwidereApplication.getInstance(mContext);
|
||||
final UserColorNameManager manager = application.getUserColorNameManager();
|
||||
final UserColorNameManager manager = ApplicationModule.get(mContext).getUserColorNameManager();
|
||||
final boolean nameFirst = mPreferences.getBoolean(KEY_NAME_FIRST);
|
||||
final String message = mContext.getString(R.string.unmuted_user,
|
||||
manager.getDisplayName(result.getData(), nameFirst, true));
|
||||
|
@ -2188,12 +2179,15 @@ public class AsyncTwitterWrapper extends TwitterWrapper {
|
|||
final String[] projection = {SQLFunctions.COUNT()};
|
||||
final int rowsDeleted;
|
||||
final Cursor countCur = mResolver.query(uri, projection, countWhere, null, null);
|
||||
if (countCur.moveToFirst()) {
|
||||
rowsDeleted = countCur.getInt(0);
|
||||
} else {
|
||||
rowsDeleted = 0;
|
||||
try {
|
||||
if (countCur != null && countCur.moveToFirst()) {
|
||||
rowsDeleted = countCur.getInt(0);
|
||||
} else {
|
||||
rowsDeleted = 0;
|
||||
}
|
||||
} finally {
|
||||
Utils.closeSilently(countCur);
|
||||
}
|
||||
countCur.close();
|
||||
|
||||
// BEGIN HotMobi
|
||||
final RefreshEvent event = RefreshEvent.create(mContext, statusIds, getTimelineType());
|
||||
|
|
|
@ -34,7 +34,6 @@ import com.twitter.Extractor;
|
|||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.activity.support.BaseAppCompatActivity;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.menu.AccountActionProvider;
|
||||
import org.mariotaku.twidere.model.ParcelableAccount;
|
||||
import org.mariotaku.twidere.model.ParcelableStatus;
|
||||
|
@ -60,12 +59,11 @@ import static org.mariotaku.twidere.util.content.ContentResolverUtils.bulkInsert
|
|||
@SuppressLint("Registered")
|
||||
public class MultiSelectEventHandler implements Constants, ActionMode.Callback, MultiSelectManager.Callback {
|
||||
|
||||
private TwidereApplication mApplication;
|
||||
|
||||
@Inject
|
||||
AsyncTwitterWrapper mTwitterWrapper;
|
||||
|
||||
private MultiSelectManager mMultiSelectManager;
|
||||
@Inject
|
||||
MultiSelectManager mMultiSelectManager;
|
||||
|
||||
private ActionMode mActionMode;
|
||||
|
||||
|
@ -84,8 +82,6 @@ public class MultiSelectEventHandler implements Constants, ActionMode.Callback,
|
|||
* Call before super.onCreate
|
||||
*/
|
||||
public void dispatchOnCreate() {
|
||||
mApplication = mActivity.getTwidereApplication();
|
||||
mMultiSelectManager = mApplication.getMultiSelectManager();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -26,10 +26,13 @@ import android.content.Context;
|
|||
import android.media.MediaScannerConnection;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Environment;
|
||||
import android.system.ErrnoException;
|
||||
import android.system.OsConstants;
|
||||
import android.util.Log;
|
||||
import android.webkit.MimeTypeMap;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.fragment.ProgressDialogFragment;
|
||||
|
@ -91,6 +94,7 @@ public class SaveFileTask extends AsyncTask<Object, Object, File> implements Con
|
|||
}
|
||||
return saveFile;
|
||||
} catch (final IOException e) {
|
||||
final int errno = Utils.getErrorNo(e.getCause());
|
||||
Log.w(LOGTAG, "Failed to save file", e);
|
||||
return null;
|
||||
} finally {
|
||||
|
|
|
@ -26,16 +26,15 @@ import android.graphics.Color;
|
|||
import android.support.v4.util.LongSparseArray;
|
||||
|
||||
import org.mariotaku.twidere.TwidereConstants;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.api.twitter.model.User;
|
||||
import org.mariotaku.twidere.model.ParcelableStatus;
|
||||
import org.mariotaku.twidere.model.ParcelableUser;
|
||||
import org.mariotaku.twidere.model.ParcelableUserList;
|
||||
import org.mariotaku.twidere.util.dagger.ApplicationModule;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.mariotaku.twidere.api.twitter.model.User;
|
||||
|
||||
import static android.text.TextUtils.isEmpty;
|
||||
|
||||
public class UserColorNameManager implements TwidereConstants {
|
||||
|
@ -65,8 +64,7 @@ public class UserColorNameManager implements TwidereConstants {
|
|||
}
|
||||
|
||||
public static UserColorNameManager getInstance(Context context) {
|
||||
final TwidereApplication application = TwidereApplication.getInstance(context);
|
||||
return application.getUserColorNameManager();
|
||||
return ApplicationModule.get(context).getUserColorNameManager();
|
||||
}
|
||||
|
||||
public void clearUserColor(final long userId) {
|
||||
|
@ -105,7 +103,6 @@ public class UserColorNameManager implements TwidereConstants {
|
|||
return getDisplayName(user.id, user.name, user.screen_name, nameFirst, ignoreCache);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public String getDisplayName(final User user, final boolean nameFirst, final boolean ignoreCache) {
|
||||
return getDisplayName(user.getId(), user.getName(), user.getScreenName(), nameFirst, ignoreCache);
|
||||
}
|
||||
|
|
|
@ -82,6 +82,7 @@ import android.support.v4.view.MenuItemCompat;
|
|||
import android.support.v4.view.accessibility.AccessibilityEventCompat;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.ShareActionProvider;
|
||||
import android.system.ErrnoException;
|
||||
import android.text.Editable;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.TextUtils;
|
||||
|
@ -741,6 +742,12 @@ public final class Utils implements Constants {
|
|||
return true;
|
||||
}
|
||||
|
||||
public static boolean closeSilently(final Cursor c) {
|
||||
if (c == null) return false;
|
||||
c.close();
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void configBaseAdapter(final Context context, final IBaseAdapter adapter) {
|
||||
if (context == null) return;
|
||||
final SharedPreferences pref = context.getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
|
@ -2663,7 +2670,7 @@ public final class Utils implements Constants {
|
|||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
public static void openMedia(final Context context, final ParcelableDirectMessage message, final ParcelableMedia current, Bundle options) {
|
||||
public static void openMedia(final Context context, final ParcelableDirectMessage message, final ParcelableMedia current, @Nullable Bundle options) {
|
||||
openMedia(context, message.account_id, false, null, message, current, message.media, options);
|
||||
}
|
||||
|
||||
|
@ -3914,6 +3921,11 @@ public final class Utils implements Constants {
|
|||
return Boolean.parseBoolean("false");
|
||||
}
|
||||
|
||||
public static int getErrorNo(Throwable t) {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return 0;
|
||||
return UtilsL.getErrorNo(t);
|
||||
}
|
||||
|
||||
static class UtilsL {
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
||||
|
@ -3925,6 +3937,15 @@ public final class Utils implements Constants {
|
|||
window.setSharedElementEnterTransition(transition);
|
||||
window.setSharedElementExitTransition(transition);
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
||||
public static int getErrorNo(Throwable t) {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return 0;
|
||||
if (t instanceof ErrnoException) {
|
||||
return ((ErrnoException) t).errno;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
private static class ImageGridClickListener implements View.OnClickListener {
|
||||
|
@ -3975,28 +3996,28 @@ public final class Utils implements Constants {
|
|||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static GeoLocation getCachedGeoLocation(Context context) {
|
||||
final Location location = getCachedLocation(context);
|
||||
if (location == null) return null;
|
||||
return new GeoLocation(location.getLatitude(), location.getLongitude());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static Location getCachedLocation(Context context) {
|
||||
Location location = null;
|
||||
final LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
|
||||
if (lm == null) return null;
|
||||
try {
|
||||
final LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
|
||||
try {
|
||||
location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
|
||||
} catch (Exception ignore) {
|
||||
location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
|
||||
} catch (SecurityException ignore) {
|
||||
|
||||
}
|
||||
if (location != null) return location;
|
||||
try {
|
||||
location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
|
||||
} catch (Exception ignore) {
|
||||
}
|
||||
if (location != null) return location;
|
||||
try {
|
||||
location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
|
||||
} catch (SecurityException ignore) {
|
||||
|
||||
}
|
||||
} catch (Exception ignore) {
|
||||
}
|
||||
return location;
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ package org.mariotaku.twidere.util.dagger;
|
|||
|
||||
import android.content.Context;
|
||||
import android.os.Looper;
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import com.nostra13.universalimageloader.core.ImageLoader;
|
||||
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
|
||||
|
@ -35,13 +36,17 @@ import org.mariotaku.restfu.http.RestHttpClient;
|
|||
import org.mariotaku.twidere.BuildConfig;
|
||||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
import org.mariotaku.twidere.constant.SharedPreferenceConstants;
|
||||
import org.mariotaku.twidere.util.ActivityTracker;
|
||||
import org.mariotaku.twidere.util.AsyncTaskManager;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler;
|
||||
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||
import org.mariotaku.twidere.util.MultiSelectManager;
|
||||
import org.mariotaku.twidere.util.ReadStateManager;
|
||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||
import org.mariotaku.twidere.util.TwitterAPIFactory;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.util.VideoLoader;
|
||||
import org.mariotaku.twidere.util.imageloader.TwidereImageDownloader;
|
||||
import org.mariotaku.twidere.util.net.OkHttpRestClient;
|
||||
|
@ -49,6 +54,7 @@ import org.mariotaku.twidere.util.net.TwidereNetwork;
|
|||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import edu.tsinghua.hotmobi.HotMobiLogger;
|
||||
|
||||
/**
|
||||
* Created by mariotaku on 15/10/5.
|
||||
|
@ -69,12 +75,17 @@ public class ApplicationModule {
|
|||
private final Network network;
|
||||
private final RestHttpClient restHttpClient;
|
||||
private final Bus bus;
|
||||
private final MultiSelectManager multiSelectManager;
|
||||
private final UserColorNameManager userColorNameManager;
|
||||
private final KeyboardShortcutsHandler keyboardShortcutsHandler;
|
||||
private final HotMobiLogger hotMobiLogger;
|
||||
|
||||
public ApplicationModule(TwidereApplication application) {
|
||||
if (Thread.currentThread() != Looper.getMainLooper().getThread()) {
|
||||
throw new RuntimeException("Module must be created inside main thread");
|
||||
}
|
||||
sharedPreferences = SharedPreferencesWrapper.getInstance(application, Constants.SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
sharedPreferences = SharedPreferencesWrapper.getInstance(application, Constants.SHARED_PREFERENCES_NAME,
|
||||
Context.MODE_PRIVATE, SharedPreferenceConstants.class);
|
||||
activityTracker = new ActivityTracker();
|
||||
bus = new Bus(ThreadEnforcer.MAIN);
|
||||
asyncTaskManager = AsyncTaskManager.getInstance();
|
||||
|
@ -82,15 +93,19 @@ public class ApplicationModule {
|
|||
network = new TwidereNetwork(application);
|
||||
|
||||
|
||||
asyncTwitterWrapper = new AsyncTwitterWrapper(application, asyncTaskManager, bus);
|
||||
asyncTwitterWrapper = new AsyncTwitterWrapper(application, asyncTaskManager, sharedPreferences, bus);
|
||||
restHttpClient = TwitterAPIFactory.getDefaultHttpClient(application, network);
|
||||
imageDownloader = new TwidereImageDownloader(application, restHttpClient, true);
|
||||
imageLoader = createImageLoader(application, imageDownloader);
|
||||
videoLoader = new VideoLoader(application, restHttpClient, asyncTaskManager, bus);
|
||||
mediaLoaderWrapper = new MediaLoaderWrapper(imageLoader, videoLoader);
|
||||
multiSelectManager = new MultiSelectManager();
|
||||
userColorNameManager = new UserColorNameManager(application);
|
||||
keyboardShortcutsHandler = new KeyboardShortcutsHandler(application);
|
||||
hotMobiLogger = new HotMobiLogger(application);
|
||||
}
|
||||
|
||||
public static ApplicationModule get(Context context) {
|
||||
public static ApplicationModule get(@NonNull Context context) {
|
||||
return TwidereApplication.getInstance(context).getApplicationModule();
|
||||
}
|
||||
|
||||
|
@ -108,6 +123,26 @@ public class ApplicationModule {
|
|||
return loader;
|
||||
}
|
||||
|
||||
@Provides
|
||||
public KeyboardShortcutsHandler getKeyboardShortcutsHandler() {
|
||||
return keyboardShortcutsHandler;
|
||||
}
|
||||
|
||||
@Provides
|
||||
public SharedPreferencesWrapper getSharedPreferences() {
|
||||
return sharedPreferences;
|
||||
}
|
||||
|
||||
@Provides
|
||||
public UserColorNameManager getUserColorNameManager() {
|
||||
return userColorNameManager;
|
||||
}
|
||||
|
||||
@Provides
|
||||
public MultiSelectManager getMultiSelectManager() {
|
||||
return multiSelectManager;
|
||||
}
|
||||
|
||||
@Provides
|
||||
public RestHttpClient getRestHttpClient() {
|
||||
return restHttpClient;
|
||||
|
@ -175,4 +210,8 @@ public class ApplicationModule {
|
|||
public void onLowMemory() {
|
||||
mediaLoaderWrapper.clearMemoryCache();
|
||||
}
|
||||
|
||||
public HotMobiLogger getHotMobiLogger() {
|
||||
return hotMobiLogger;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,12 +27,16 @@ import org.mariotaku.twidere.activity.support.BaseAppCompatActivity;
|
|||
import org.mariotaku.twidere.activity.support.ThemedFragmentActivity;
|
||||
import org.mariotaku.twidere.adapter.AccountsAdapter;
|
||||
import org.mariotaku.twidere.adapter.AccountsSpinnerAdapter;
|
||||
import org.mariotaku.twidere.adapter.BaseAdapter;
|
||||
import org.mariotaku.twidere.adapter.BaseArrayAdapter;
|
||||
import org.mariotaku.twidere.adapter.BaseRecyclerViewAdapter;
|
||||
import org.mariotaku.twidere.adapter.DraftsAdapter;
|
||||
import org.mariotaku.twidere.adapter.UserHashtagAutoCompleteAdapter;
|
||||
import org.mariotaku.twidere.fragment.BaseDialogFragment;
|
||||
import org.mariotaku.twidere.fragment.BaseFiltersFragment;
|
||||
import org.mariotaku.twidere.fragment.BaseFragment;
|
||||
import org.mariotaku.twidere.fragment.BaseListFragment;
|
||||
import org.mariotaku.twidere.fragment.BasePreferenceFragment;
|
||||
import org.mariotaku.twidere.fragment.support.AccountsDashboardFragment;
|
||||
import org.mariotaku.twidere.fragment.support.BaseSupportDialogFragment;
|
||||
import org.mariotaku.twidere.fragment.support.BaseSupportFragment;
|
||||
import org.mariotaku.twidere.provider.TwidereCommandProvider;
|
||||
|
@ -78,7 +82,7 @@ public interface GeneralComponent {
|
|||
|
||||
void inject(BackgroundOperationService object);
|
||||
|
||||
void inject(BaseAdapter<RecyclerView.ViewHolder> object);
|
||||
void inject(BaseRecyclerViewAdapter<RecyclerView.ViewHolder> object);
|
||||
|
||||
void inject(AccountsAdapter object);
|
||||
|
||||
|
@ -91,4 +95,12 @@ public interface GeneralComponent {
|
|||
void inject(DraftsAdapter object);
|
||||
|
||||
void inject(ManagedAsyncTask<Object, Object, Object> object);
|
||||
|
||||
void inject(BasePreferenceFragment object);
|
||||
|
||||
void inject(BaseDialogFragment object);
|
||||
|
||||
void inject(BaseFiltersFragment.FilteredUsersFragment.FilterUsersListAdapter object);
|
||||
|
||||
void inject(AccountsDashboardFragment.OptionItemsAdapter object);
|
||||
}
|
||||
|
|
|
@ -97,8 +97,7 @@ public class MessageViewHolder extends ViewHolder implements OnMediaClickListene
|
|||
|
||||
@Override
|
||||
public void onMediaClick(View view, ParcelableMedia media, long accountId) {
|
||||
//TODO open media animation
|
||||
Bundle options = null;
|
||||
final Bundle options = Utils.createMediaViewerActivityOption(view);
|
||||
Utils.openMedia(adapter.getContext(), adapter.getDirectMessage(getAdapterPosition()), media, options);
|
||||
}
|
||||
|
||||
|
|
|
@ -453,13 +453,14 @@ public class StatusViewHolder extends ViewHolder implements Constants, OnClickLi
|
|||
|
||||
private final Context context;
|
||||
private final SharedPreferencesWrapper preferences;
|
||||
@Inject
|
||||
MediaLoaderWrapper loader;
|
||||
private final TwidereLinkify linkify;
|
||||
private final MediaLoadingHandler handler;
|
||||
@Inject
|
||||
MediaLoaderWrapper loader;
|
||||
@Inject
|
||||
AsyncTwitterWrapper twitter;
|
||||
private final TwidereLinkify linkify;
|
||||
private final UserColorNameManager manager;
|
||||
@Inject
|
||||
UserColorNameManager manager;
|
||||
|
||||
private int profileImageStyle;
|
||||
private int mediaPreviewStyle;
|
||||
|
@ -478,7 +479,6 @@ public class StatusViewHolder extends ViewHolder implements Constants, OnClickLi
|
|||
preferences = SharedPreferencesWrapper.getInstance(context, SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
final TwidereApplication app = TwidereApplication.getInstance(context);
|
||||
handler = new MediaLoadingHandler(R.id.media_preview_progress);
|
||||
manager = app.getUserColorNameManager();
|
||||
linkify = new TwidereLinkify(null);
|
||||
updateOptions();
|
||||
}
|
||||
|
|
|
@ -38,30 +38,27 @@
|
|||
<FrameLayout
|
||||
android:id="@+id/video_view_overlay"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignBottom="@+id/video_view"
|
||||
android:layout_alignEnd="@+id/video_view"
|
||||
android:layout_alignLeft="@+id/video_view"
|
||||
android:layout_alignRight="@+id/video_view"
|
||||
android:layout_alignStart="@+id/video_view"
|
||||
android:layout_alignTop="@+id/video_view"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:animateLayoutChanges="true">
|
||||
|
||||
<LinearLayout
|
||||
<RelativeLayout
|
||||
android:id="@+id/video_control"
|
||||
style="?actionBarSplitStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/height_player_control_panel"
|
||||
android:layout_height="?actionBarSize"
|
||||
android:layout_gravity="bottom"
|
||||
android:background="@drawable/bg_shadow_video_player"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="gone">
|
||||
tools:ignore="UselessParent">
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/play_pause_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="0"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
|
||||
android:background="?selectableItemBackgroundBorderless"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/play"
|
||||
|
@ -71,37 +68,46 @@
|
|||
<TextView
|
||||
android:id="@+id/position_label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="0"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignLeft="@+id/video_view_progress"
|
||||
android:layout_alignStart="@+id/video_view_progress"
|
||||
android:layout_below="@+id/video_view_progress"
|
||||
android:gravity="center"
|
||||
android:minWidth="@dimen/element_size_normal"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
tools:text="12:34" />
|
||||
android:textSize="@dimen/text_size_extra_small"
|
||||
tools:text="--:--" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/video_view_progress"
|
||||
style="?android:progressBarStyleHorizontal"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_toEndOf="@+id/play_pause_button"
|
||||
android:layout_toLeftOf="@+id/volume_button"
|
||||
android:layout_toRightOf="@+id/play_pause_button"
|
||||
android:layout_toStartOf="@+id/volume_button"
|
||||
android:indeterminate="false" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/duration_label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="0"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignEnd="@+id/video_view_progress"
|
||||
android:layout_alignRight="@+id/video_view_progress"
|
||||
android:layout_below="@+id/video_view_progress"
|
||||
android:gravity="center"
|
||||
android:minWidth="@dimen/element_size_normal"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
tools:text="27:56" />
|
||||
android:textSize="@dimen/text_size_extra_small"
|
||||
tools:text="--:--" />
|
||||
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/volume_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="0"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:background="?selectableItemBackgroundBorderless"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/mute"
|
||||
|
@ -109,7 +115,7 @@
|
|||
android:src="@drawable/ic_action_speaker_max" />
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
</FrameLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
|
|
Loading…
Reference in New Issue