diff --git a/libraries/MenuComponent b/libraries/MenuComponent
index e565ee636..42c1ffdeb 160000
--- a/libraries/MenuComponent
+++ b/libraries/MenuComponent
@@ -1 +1 @@
-Subproject commit e565ee636888197425aabf17c46a398544ba6dc3
+Subproject commit 42c1ffdeb547e4caa9a3a10249912b350453346e
diff --git a/settings.gradle b/settings.gradle
index 7bc181130..c5baa09ad 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,4 +1,5 @@
-include ':twidere', ':SlidingMenu', ':DragSortListView', ':MenuComponent', ':RefreshNow'
+include ':twidere', ':twidere.wear'
+include ':SlidingMenu', ':DragSortListView', ':MenuComponent', ':RefreshNow'
project(':SlidingMenu').projectDir = file('libraries/SlidingMenu/library')
project(':DragSortListView').projectDir = file('libraries/DragSortListView/library')
diff --git a/twidere.wear/.gitignore b/twidere.wear/.gitignore
new file mode 100644
index 000000000..796b96d1c
--- /dev/null
+++ b/twidere.wear/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/twidere.wear/build.gradle b/twidere.wear/build.gradle
new file mode 100644
index 000000000..a8d740d42
--- /dev/null
+++ b/twidere.wear/build.gradle
@@ -0,0 +1,32 @@
+apply plugin: 'com.android.application'
+
+
+android {
+ compileSdkVersion 20
+ buildToolsVersion "21.0.2"
+
+ defaultConfig {
+ applicationId "org.mariotaku.twidere"
+ minSdkVersion 20
+ targetSdkVersion 20
+ versionCode 1
+ versionName "1.0"
+ }
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_7
+ targetCompatibility JavaVersion.VERSION_1_7
+ }
+ buildTypes {
+ release {
+ runProguard false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+ compile fileTree(dir: 'libs', include: ['*.jar'])
+ compile 'com.google.android.support:wearable:1.0.0'
+ compile 'com.google.android.gms:play-services-wearable:6.1.11'
+}
diff --git a/twidere.wear/proguard-rules.pro b/twidere.wear/proguard-rules.pro
new file mode 100644
index 000000000..bb65c6fe8
--- /dev/null
+++ b/twidere.wear/proguard-rules.pro
@@ -0,0 +1,17 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /Applications/Android Studio.app/sdk/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/twidere.wear/src/main/AndroidManifest.xml b/twidere.wear/src/main/AndroidManifest.xml
new file mode 100644
index 000000000..8577ea6ff
--- /dev/null
+++ b/twidere.wear/src/main/AndroidManifest.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/twidere.wear/src/main/java/org/mariotaku/twidere/extension/wear/MainActivity.java b/twidere.wear/src/main/java/org/mariotaku/twidere/extension/wear/MainActivity.java
new file mode 100644
index 000000000..7ff41bdcb
--- /dev/null
+++ b/twidere.wear/src/main/java/org/mariotaku/twidere/extension/wear/MainActivity.java
@@ -0,0 +1,24 @@
+package org.mariotaku.twidere.extension.wear;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.wearable.view.WatchViewStub;
+import android.widget.TextView;
+
+public class MainActivity extends Activity {
+
+ private TextView mTextView;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
+ stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
+ @Override
+ public void onLayoutInflated(WatchViewStub stub) {
+ mTextView = (TextView) stub.findViewById(R.id.text);
+ }
+ });
+ }
+}
diff --git a/twidere.wear/src/main/res/drawable-hdpi/ic_launcher.png b/twidere.wear/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..55621cc10
Binary files /dev/null and b/twidere.wear/src/main/res/drawable-hdpi/ic_launcher.png differ
diff --git a/twidere.wear/src/main/res/drawable-mdpi/ic_launcher.png b/twidere.wear/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..11ec2068b
Binary files /dev/null and b/twidere.wear/src/main/res/drawable-mdpi/ic_launcher.png differ
diff --git a/twidere.wear/src/main/res/drawable-xhdpi/ic_launcher.png b/twidere.wear/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 000000000..7c02b784a
Binary files /dev/null and b/twidere.wear/src/main/res/drawable-xhdpi/ic_launcher.png differ
diff --git a/twidere.wear/src/main/res/drawable-xxhdpi/ic_launcher.png b/twidere.wear/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 000000000..915d91441
Binary files /dev/null and b/twidere.wear/src/main/res/drawable-xxhdpi/ic_launcher.png differ
diff --git a/twidere.wear/src/main/res/layout/activity_main.xml b/twidere.wear/src/main/res/layout/activity_main.xml
new file mode 100644
index 000000000..0d83a6897
--- /dev/null
+++ b/twidere.wear/src/main/res/layout/activity_main.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/twidere.wear/src/main/res/layout/rect_activity_main.xml b/twidere.wear/src/main/res/layout/rect_activity_main.xml
new file mode 100644
index 000000000..9cea89757
--- /dev/null
+++ b/twidere.wear/src/main/res/layout/rect_activity_main.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/twidere.wear/src/main/res/layout/round_activity_main.xml b/twidere.wear/src/main/res/layout/round_activity_main.xml
new file mode 100644
index 000000000..b2eed694d
--- /dev/null
+++ b/twidere.wear/src/main/res/layout/round_activity_main.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/twidere.wear/src/main/res/values/strings.xml b/twidere.wear/src/main/res/values/strings.xml
new file mode 100644
index 000000000..aefd24a73
--- /dev/null
+++ b/twidere.wear/src/main/res/values/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+ Twidere Wear Extension
+ MainActivity
+ Hello Round World!
+ Hello Square World!
+
+
diff --git a/twidere/build.gradle b/twidere/build.gradle
index 60470f9a9..5962846f1 100644
--- a/twidere/build.gradle
+++ b/twidere/build.gradle
@@ -2,7 +2,7 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 21
- buildToolsVersion '21.0.1'
+ buildToolsVersion '21.0.2'
defaultConfig {
applicationId "org.mariotaku.twidere"
@@ -69,7 +69,9 @@ android {
}
dependencies {
+ wearApp project(':twidere.wear')
compile 'com.android.support:support-v13:21.0.0'
+ compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.android.support:cardview-v7:21.0.0'
compile 'com.android.support:recyclerview-v7:21.0.0'
compile 'com.google.android.gms:play-services:6.1.11'
diff --git a/twidere/src/main/java/org/mariotaku/gallery3d/ImageViewerGLActivity.java b/twidere/src/main/java/org/mariotaku/gallery3d/ImageViewerGLActivity.java
index feeec2e74..817b51fbd 100644
--- a/twidere/src/main/java/org/mariotaku/gallery3d/ImageViewerGLActivity.java
+++ b/twidere/src/main/java/org/mariotaku/gallery3d/ImageViewerGLActivity.java
@@ -46,6 +46,7 @@ import org.mariotaku.gallery3d.ui.SynchronizedHandler;
import org.mariotaku.gallery3d.util.GalleryUtils;
import org.mariotaku.gallery3d.util.ThreadPool;
import org.mariotaku.menucomponent.widget.MenuBar;
+import org.mariotaku.menucomponent.widget.MenuBar.MenuBarListener;
import org.mariotaku.twidere.Constants;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.activity.support.TwidereSwipeBackActivity;
@@ -60,7 +61,7 @@ import me.imid.swipebacklayout.lib.SwipeBackLayout.SwipeListener;
public final class ImageViewerGLActivity extends TwidereSwipeBackActivity implements Constants, PhotoView.Listener,
GLImageLoader.DownloadListener, LoaderManager.LoaderCallbacks, OnMenuVisibilityListener,
- SwipeListener, OnMenuItemClickListener {
+ SwipeListener, MenuBarListener {
private final GLView mRootPane = new GLView() {
@Override
@@ -340,7 +341,7 @@ public final class ImageViewerGLActivity extends TwidereSwipeBackActivity implem
if (savedInstanceState == null) {
loadImage();
}
- mMenuBar.setOnMenuItemClickListener(this);
+ mMenuBar.setMenuBarListener(this);
mMenuBar.inflate(R.menu.menu_image_viewer);
mMenuBar.setIsBottomBar(true);
mMenuBar.show();
@@ -531,6 +532,11 @@ public final class ImageViewerGLActivity extends TwidereSwipeBackActivity implem
Utils.addIntentToMenu(this, subMenu, shareIntent);
}
+ @Override
+ public void onPreShowMenu(Menu menu) {
+
+ }
+
private static class MyHandler extends SynchronizedHandler {
ImageViewerGLActivity activity;
diff --git a/twidere/src/main/java/org/mariotaku/twidere/Constants.java b/twidere/src/main/java/org/mariotaku/twidere/Constants.java
index 1c81101cc..00930b42d 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/Constants.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/Constants.java
@@ -28,7 +28,7 @@ package org.mariotaku.twidere;
public interface Constants extends TwidereConstants {
public static final String DATABASES_NAME = "twidere.sqlite";
- public static final int DATABASES_VERSION = 66;
+ public static final int DATABASES_VERSION = 67;
public static final String GOOGLE_MAPS_API_KEY_RELEASE = "0kjPwJOe_zwYjzGc9uYak7vhm_Sf3eob-2L3Xzw";
public static final String GOOGLE_MAPS_API_KEY_DEBUG = "0kjPwJOe_zwY9p6kT-kygu4mxwysyOOpfkaXqTA";
diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/FiltersActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/FiltersActivity.java
index 970214a09..351c931a3 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/activity/FiltersActivity.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/activity/FiltersActivity.java
@@ -61,10 +61,10 @@ import org.mariotaku.twidere.fragment.support.BaseSupportDialogFragment;
import org.mariotaku.twidere.menu.TwidereMenuInflater;
import org.mariotaku.twidere.model.ParcelableUser;
import org.mariotaku.twidere.provider.TweetStore.Filters;
+import org.mariotaku.twidere.util.ContentValuesCreator;
import org.mariotaku.twidere.util.ParseUtils;
import org.mariotaku.twidere.util.ThemeUtils;
-import static org.mariotaku.twidere.util.ContentValuesCreator.makeFilterdUserContentValues;
import static org.mariotaku.twidere.util.Utils.getDefaultAccountId;
public class FiltersActivity extends BaseSupportActivity implements TabListener, OnPageChangeListener {
@@ -204,7 +204,7 @@ public class FiltersActivity extends BaseSupportActivity implements TabListener,
if (resultCode != RESULT_OK || !(filter instanceof FilteredUsersFragment) || !data.hasExtra(EXTRA_USER))
return;
final ParcelableUser user = data.getParcelableExtra(EXTRA_USER);
- final ContentValues values = makeFilterdUserContentValues(user);
+ final ContentValues values = ContentValuesCreator.makeFilteredUserContentValues(user);
final ContentResolver resolver = getContentResolver();
resolver.delete(Filters.Users.CONTENT_URI, Where.equals(Filters.Users.USER_ID, user.id).getSQL(), null);
resolver.insert(Filters.Users.CONTENT_URI, values);
diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/support/APIEditorActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/support/APIEditorActivity.java
index b1ed131d9..5ef1ce1e1 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/activity/support/APIEditorActivity.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/activity/support/APIEditorActivity.java
@@ -53,7 +53,7 @@ public class APIEditorActivity extends BaseSupportDialogActivity implements Twit
OnClickListener {
private EditText mEditAPIUrlFormat;
- private CheckBox mEditSameOAuthSigningUrl;
+ private CheckBox mEditSameOAuthSigningUrl, mEditNoVersionSuffix;
private EditText mEditConsumerKey, mEditConsumerSecret;
private RadioGroup mEditAuthType;
private RadioButton mButtonOAuth, mButtonxAuth, mButtonBasic, mButtonTwipOMode;
@@ -111,6 +111,7 @@ public class APIEditorActivity extends BaseSupportDialogActivity implements Twit
mAdvancedAPIConfigLabel = (TextView) findViewById(R.id.advanced_api_config_label);
mAdvancedAPIConfigView = findViewById(R.id.advanced_api_config);
mEditSameOAuthSigningUrl = (CheckBox) findViewById(R.id.same_oauth_signing_url);
+ mEditNoVersionSuffix = (CheckBox) findViewById(R.id.no_version_suffix);
mEditConsumerKey = (EditText) findViewById(R.id.consumer_key);
mEditConsumerSecret = (EditText) findViewById(R.id.consumer_secret);
mSaveButton = (Button) findViewById(R.id.save);
@@ -122,11 +123,13 @@ public class APIEditorActivity extends BaseSupportDialogActivity implements Twit
final String apiUrlFormat = parseString(mEditAPIUrlFormat.getText());
final int authType = getCheckedAuthType(mEditAuthType.getCheckedRadioButtonId());
final boolean sameOAuthSigningUrl = mEditSameOAuthSigningUrl.isChecked();
+ final boolean noVersionSuffix = mEditNoVersionSuffix.isChecked();
final String consumerKey = parseString(mEditConsumerKey.getText());
final String consumerSecret = parseString(mEditConsumerSecret.getText());
outState.putString(Accounts.API_URL_FORMAT, apiUrlFormat);
outState.putInt(Accounts.AUTH_TYPE, authType);
outState.putBoolean(Accounts.SAME_OAUTH_SIGNING_URL, sameOAuthSigningUrl);
+ outState.putBoolean(Accounts.NO_VERSION_SUFFIX, noVersionSuffix);
outState.putString(Accounts.CONSUMER_KEY, consumerKey);
outState.putString(Accounts.CONSUMER_SECRET, consumerSecret);
super.onSaveInstanceState(outState);
@@ -136,12 +139,14 @@ public class APIEditorActivity extends BaseSupportDialogActivity implements Twit
final String apiUrlFormat = parseString(mEditAPIUrlFormat.getText());
final int authType = getCheckedAuthType(mEditAuthType.getCheckedRadioButtonId());
final boolean sameOAuthSigningUrl = mEditSameOAuthSigningUrl.isChecked();
+ final boolean noVersionSuffix = mEditNoVersionSuffix.isChecked();
final String consumerKey = parseString(mEditConsumerKey.getText());
final String consumerSecret = parseString(mEditConsumerSecret.getText());
final Intent intent = new Intent();
intent.putExtra(Accounts.API_URL_FORMAT, apiUrlFormat);
intent.putExtra(Accounts.AUTH_TYPE, authType);
intent.putExtra(Accounts.SAME_OAUTH_SIGNING_URL, sameOAuthSigningUrl);
+ intent.putExtra(Accounts.NO_VERSION_SUFFIX, noVersionSuffix);
intent.putExtra(Accounts.CONSUMER_KEY, consumerKey);
intent.putExtra(Accounts.CONSUMER_SECRET, consumerSecret);
setResult(RESULT_OK, intent);
@@ -155,13 +160,14 @@ public class APIEditorActivity extends BaseSupportDialogActivity implements Twit
String apiUrlFormat;
int authType;
- boolean sameOAuthSigningUrl;
+ boolean sameOAuthSigningUrl, noVersionSuffix;
String consumerKey, consumerSecret;
final SharedPreferences pref = getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
final String prefApiUrlFormat = getNonEmptyString(pref, KEY_API_URL_FORMAT, DEFAULT_REST_BASE_URL);
final int prefAuthType = pref.getInt(KEY_AUTH_TYPE, Accounts.AUTH_TYPE_OAUTH);
final boolean prefSameOAuthSigningUrl = pref.getBoolean(KEY_SAME_OAUTH_SIGNING_URL, false);
+ final boolean prefNoVersionSuffix = pref.getBoolean(KEY_NO_VERSION_SUFFIX, false);
final String prefConsumerKey = getNonEmptyString(pref, KEY_CONSUMER_KEY, TWITTER_CONSUMER_KEY_2);
final String prefConsumerSecret = getNonEmptyString(pref, KEY_CONSUMER_SECRET, TWITTER_CONSUMER_SECRET_2);
if (savedInstanceState != null) {
@@ -169,6 +175,8 @@ public class APIEditorActivity extends BaseSupportDialogActivity implements Twit
authType = savedInstanceState.getInt(Accounts.AUTH_TYPE, prefAuthType);
sameOAuthSigningUrl = savedInstanceState.getBoolean(Accounts.SAME_OAUTH_SIGNING_URL,
prefSameOAuthSigningUrl);
+ noVersionSuffix = savedInstanceState.getBoolean(Accounts.NO_VERSION_SUFFIX,
+ prefNoVersionSuffix);
consumerKey = trim(savedInstanceState.getString(Accounts.CONSUMER_KEY, prefConsumerKey));
consumerSecret = trim(savedInstanceState.getString(Accounts.CONSUMER_SECRET, prefConsumerSecret));
} else {
@@ -177,6 +185,7 @@ public class APIEditorActivity extends BaseSupportDialogActivity implements Twit
apiUrlFormat = trim(extras.getString(Accounts.API_URL_FORMAT, prefApiUrlFormat));
authType = extras.getInt(Accounts.AUTH_TYPE, prefAuthType);
sameOAuthSigningUrl = extras.getBoolean(Accounts.SAME_OAUTH_SIGNING_URL, prefSameOAuthSigningUrl);
+ noVersionSuffix = extras.getBoolean(Accounts.NO_VERSION_SUFFIX, prefNoVersionSuffix);
consumerKey = trim(extras.getString(Accounts.CONSUMER_KEY, prefConsumerKey));
consumerSecret = trim(extras.getString(Accounts.CONSUMER_SECRET, prefConsumerSecret));
}
@@ -188,6 +197,7 @@ public class APIEditorActivity extends BaseSupportDialogActivity implements Twit
mEditAPIUrlFormat.setText(apiUrlFormat);
mEditSameOAuthSigningUrl.setChecked(sameOAuthSigningUrl);
+ mEditNoVersionSuffix.setChecked(noVersionSuffix);
mEditConsumerKey.setText(consumerKey);
mEditConsumerSecret.setText(consumerSecret);
diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/support/BaseSupportThemedActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/support/BaseSupportThemedActivity.java
index 07fc240db..c400475ea 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/activity/support/BaseSupportThemedActivity.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/activity/support/BaseSupportThemedActivity.java
@@ -21,9 +21,13 @@ package org.mariotaku.twidere.activity.support;
import android.app.ActionBar;
import android.content.res.Resources;
+import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.NavUtils;
+import android.text.SpannableStringBuilder;
+import android.text.Spanned;
+import android.text.style.ForegroundColorSpan;
import android.view.Menu;
import org.mariotaku.twidere.Constants;
@@ -143,6 +147,20 @@ public abstract class BaseSupportThemedActivity extends FragmentActivity impleme
super.onStart();
}
+ @Override
+ protected void onTitleChanged(CharSequence title, int color) {
+ final SpannableStringBuilder builder = new SpannableStringBuilder(title);
+ super.onTitleChanged(title, color);
+ final int themeResId = getCurrentThemeResourceId();
+ final int themeColor = getThemeColor(), contrastColor = Utils.getContrastYIQ(themeColor, 192);
+ if (ThemeUtils.isColoredActionBar(themeResId)) {
+ builder.setSpan(new ForegroundColorSpan(contrastColor), 0, builder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+ } else {
+ final int titleColor = ThemeUtils.isLightActionBar(themeResId) ? Color.BLACK : Color.WHITE;
+ builder.setSpan(new ForegroundColorSpan(titleColor), 0, builder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+ }
+ }
+
@Override
protected void onResume() {
super.onResume();
diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/support/ComposeActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/support/ComposeActivity.java
index bbb7089c4..1e437bba9 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/activity/support/ComposeActivity.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/activity/support/ComposeActivity.java
@@ -43,6 +43,7 @@ import android.os.Bundle;
import android.os.Environment;
import android.os.Parcelable;
import android.provider.MediaStore;
+import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v4.util.LongSparseArray;
import android.text.Editable;
@@ -53,7 +54,6 @@ import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
-import android.view.MenuItem.OnMenuItemClickListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
@@ -78,6 +78,7 @@ import com.twitter.Extractor;
import org.mariotaku.dynamicgridview.DraggableArrayAdapter;
import org.mariotaku.menucomponent.widget.MenuBar;
+import org.mariotaku.menucomponent.widget.MenuBar.MenuBarListener;
import org.mariotaku.menucomponent.widget.PopupMenu;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.adapter.BaseArrayAdapter;
@@ -148,7 +149,7 @@ import static org.mariotaku.twidere.util.Utils.showErrorMessage;
import static org.mariotaku.twidere.util.Utils.showMenuItemToast;
public class ComposeActivity extends BaseSupportDialogActivity implements TextWatcher, LocationListener,
- OnMenuItemClickListener, OnClickListener, OnEditorActionListener, OnItemClickListener, OnItemLongClickListener,
+ MenuBarListener, OnClickListener, OnEditorActionListener, OnItemClickListener, OnItemLongClickListener,
OnLongClickListener {
private static final String FAKE_IMAGE_LINK = "https://www.example.com/fake_image.jpg";
@@ -595,8 +596,8 @@ public class ComposeActivity extends BaseSupportDialogActivity implements TextWa
return;
}
mBottomMenuBar.setIsBottomBar(true);
- mBottomMenuBar.setOnMenuItemClickListener(this);
- mActionMenuBar.setOnMenuItemClickListener(this);
+ mBottomMenuBar.setMenuBarListener(this);
+ mActionMenuBar.setMenuBarListener(this);
mEditText.setOnEditorActionListener(mPreferences.getBoolean(KEY_QUICK_SEND, false) ? this : null);
mEditText.addTextChangedListener(this);
mAccountSelectorAdapter = new AccountSelectorAdapter(this);
@@ -1142,7 +1143,7 @@ public class ComposeActivity extends BaseSupportDialogActivity implements TextWa
private void updateTextCount() {
final StatusTextCountView textCountView = mBottomSendButton ? mBottomSendTextCountView : mSendTextCountView;
if (textCountView != null && mEditText != null) {
- final String textOrig = mEditText != null ? parseString(mEditText.getText()) : null;
+ final String textOrig = parseString(mEditText.getText());
final String text = hasMedia() && textOrig != null ? mImageUploaderUsed ? getImageUploadStatus(this,
new String[]{FAKE_IMAGE_LINK}, textOrig) : textOrig + " " + FAKE_IMAGE_LINK : textOrig;
final int validatedCount = text != null ? mValidator.getTweetLength(text) : 0;
@@ -1150,6 +1151,11 @@ public class ComposeActivity extends BaseSupportDialogActivity implements TextWa
}
}
+ @Override
+ public void onPreShowMenu(Menu menu) {
+
+ }
+
public static class RetweetProtectedStatusWarnFragment extends BaseSupportDialogFragment implements
DialogInterface.OnClickListener {
@@ -1167,6 +1173,7 @@ public class ComposeActivity extends BaseSupportDialogActivity implements TextWa
}
+ @NonNull
@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
final Context wrapped = ThemeUtils.getDialogThemedContext(getActivity());
@@ -1204,6 +1211,7 @@ public class ComposeActivity extends BaseSupportDialogActivity implements TextWa
}
+ @NonNull
@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
final Context wrapped = ThemeUtils.getDialogThemedContext(getActivity());
diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/support/HomeActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/support/HomeActivity.java
index 79e333e3e..b2b9a6365 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/activity/support/HomeActivity.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/activity/support/HomeActivity.java
@@ -35,6 +35,7 @@ import android.database.ContentObserver;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Rect;
+import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
@@ -228,9 +229,7 @@ public class HomeActivity extends BaseSupportActivity implements OnClickListener
@Override
public void onClick(final View v) {
switch (v.getId()) {
- case R.id.actions:
- case R.id.actions_button:
- case R.id.actions_button_bottom: {
+ case R.id.actions_button: {
triggerActionsClick();
break;
}
@@ -248,7 +247,7 @@ public class HomeActivity extends BaseSupportActivity implements OnClickListener
mSlidingMenu = (HomeSlidingMenu) findViewById(R.id.home_menu);
mViewPager = (ExtendedViewPager) findViewById(R.id.main_pager);
mEmptyTabHint = findViewById(R.id.empty_tab_hint);
- mActionsButton = findViewById(R.id.actions_button_bottom);
+ mActionsButton = findViewById(R.id.actions_button);
mTabsContainer = findViewById(R.id.tabs_container);
mTabIndicator = (TabPagerIndicator) findViewById(R.id.main_tabs);
mActionBarOverlay = findViewById(R.id.actionbar_overlay);
@@ -297,12 +296,7 @@ public class HomeActivity extends BaseSupportActivity implements OnClickListener
@Override
public boolean onLongClick(final View v) {
switch (v.getId()) {
- case R.id.actions:
case R.id.actions_button: {
- showMenuItemToast(v, v.getContentDescription());
- return true;
- }
- case R.id.actions_button_bottom: {
showMenuItemToast(v, v.getContentDescription(), true);
return true;
}
@@ -574,7 +568,7 @@ public class HomeActivity extends BaseSupportActivity implements OnClickListener
final int themeColor = getThemeColor(), contrastColor = Utils.getContrastYIQ(themeColor, 192);
final int themeResId = getCurrentThemeResourceId();
if (ThemeUtils.isColoredActionBar(themeResId)) {
- mTabIndicator.setBackgroundColor(themeColor);
+ ViewAccessor.setBackground(mTabIndicator, new ColorDrawable(themeColor));
mTabIndicator.setStripColor(contrastColor);
mTabIndicator.setIconColor(contrastColor);
} else {
diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/support/LinkHandlerActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/support/LinkHandlerActivity.java
index 602d28ccd..9344b9d43 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/activity/support/LinkHandlerActivity.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/activity/support/LinkHandlerActivity.java
@@ -120,6 +120,10 @@ public class LinkHandlerActivity extends BaseSupportActivity implements OnClickL
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setUiOptions(getWindow(), data);
super.onCreate(savedInstanceState);
+ final ActionBar actionBar = getActionBar();
+ if (actionBar != null) {
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ }
setContentView(R.layout.layout_link_handler);
setProgressBarIndeterminateVisibility(false);
if (data == null || !showFragment(data)) {
@@ -148,11 +152,6 @@ public class LinkHandlerActivity extends BaseSupportActivity implements OnClickL
}
}
- @Override
- protected void onTitleChanged(final CharSequence title, final int color) {
- super.onTitleChanged(title, color);
- }
-
private void setUiOptions(final Window window, final Uri data) {
if (FlymeUtils.hasSmartBar()) {
window.setUiOptions(ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW);
diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/support/SignInActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/support/SignInActivity.java
index fbd175205..6906b4b89 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/activity/support/SignInActivity.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/activity/support/SignInActivity.java
@@ -26,7 +26,6 @@ import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
@@ -35,7 +34,6 @@ import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
-import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
@@ -116,7 +114,7 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
private SharedPreferences mPreferences;
private ContentResolver mResolver;
private AbstractSignInTask mTask;
- private boolean mSameOAuthSigningUrl;
+ private boolean mSameOAuthSigningUrl, mNoVersionSuffix;
@Override
public void afterTextChanged(final Editable s) {
@@ -136,6 +134,7 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
mAPIUrlFormat = data.getStringExtra(Accounts.API_URL_FORMAT);
mAuthType = data.getIntExtra(Accounts.AUTH_TYPE, Accounts.AUTH_TYPE_OAUTH);
mSameOAuthSigningUrl = data.getBooleanExtra(Accounts.SAME_OAUTH_SIGNING_URL, false);
+ mNoVersionSuffix = data.getBooleanExtra(Accounts.NO_VERSION_SUFFIX, false);
mConsumerKey = data.getStringExtra(Accounts.CONSUMER_KEY);
mConsumerSecret = data.getStringExtra(Accounts.CONSUMER_SECRET);
final boolean isTwipOMode = mAuthType == Accounts.AUTH_TYPE_TWIP_O_MODE;
@@ -263,6 +262,7 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
intent.putExtra(Accounts.API_URL_FORMAT, mAPIUrlFormat);
intent.putExtra(Accounts.AUTH_TYPE, mAuthType);
intent.putExtra(Accounts.SAME_OAUTH_SIGNING_URL, mSameOAuthSigningUrl);
+ intent.putExtra(Accounts.NO_VERSION_SUFFIX, mNoVersionSuffix);
intent.putExtra(Accounts.CONSUMER_KEY, mConsumerKey);
intent.putExtra(Accounts.CONSUMER_SECRET, mConsumerSecret);
startActivityForResult(intent, REQUEST_EDIT_API);
@@ -305,6 +305,7 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
outState.putString(Accounts.API_URL_FORMAT, mAPIUrlFormat);
outState.putInt(Accounts.AUTH_TYPE, mAuthType);
outState.putBoolean(Accounts.SAME_OAUTH_SIGNING_URL, mSameOAuthSigningUrl);
+ outState.putBoolean(Accounts.NO_VERSION_SUFFIX, mNoVersionSuffix);
outState.putString(Accounts.CONSUMER_KEY, mConsumerKey);
outState.putString(Accounts.CONSUMER_SECRET, mConsumerSecret);
outState.putString(Accounts.SCREEN_NAME, mUsername);
@@ -368,7 +369,7 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
setDefaultAPI();
final Configuration conf = getConfiguration();
mTask = new SignInTask(this, conf, mUsername, mPassword, mAuthType, mUserColor, mAPIUrlFormat,
- mSameOAuthSigningUrl);
+ mSameOAuthSigningUrl, mNoVersionSuffix);
mTask.execute();
}
@@ -384,7 +385,7 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
final String secret = intent.getStringExtra(EXTRA_REQUEST_TOKEN_SECRET);
final String verifier = intent.getStringExtra(EXTRA_OAUTH_VERIFIER);
mTask = new BrowserSignInTask(this, conf, token, secret, verifier, mUserColor, mAPIUrlFormat,
- mSameOAuthSigningUrl);
+ mSameOAuthSigningUrl, mNoVersionSuffix);
mTask.execute();
}
@@ -397,9 +398,10 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
cb.setHttpClientFactory(new TwidereHttpClientFactory(mApplication));
setUserAgent(this, cb);
if (!isEmpty(mAPIUrlFormat)) {
- cb.setRestBaseURL(Utils.getApiUrl(mAPIUrlFormat, "api", "/1.1/"));
+ final String versionSuffix = mNoVersionSuffix ? null : "/1.1/";
+ cb.setRestBaseURL(Utils.getApiUrl(mAPIUrlFormat, "api", versionSuffix));
cb.setOAuthBaseURL(Utils.getApiUrl(mAPIUrlFormat, "api", "/oauth/"));
- cb.setUploadBaseURL(Utils.getApiUrl(mAPIUrlFormat, "upload", "/1.1/"));
+ cb.setUploadBaseURL(Utils.getApiUrl(mAPIUrlFormat, "upload", versionSuffix));
if (!mSameOAuthSigningUrl) {
cb.setSigningRestBaseURL(DEFAULT_SIGNING_REST_BASE_URL);
cb.setSigningOAuthBaseURL(DEFAULT_SIGNING_OAUTH_BASE_URL);
@@ -437,6 +439,7 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
final String apiUrlFormat = getNonEmptyString(mPreferences, KEY_API_URL_FORMAT, null);
final int authType = mPreferences.getInt(KEY_AUTH_TYPE, Accounts.AUTH_TYPE_OAUTH);
final boolean sameOAuthSigningUrl = mPreferences.getBoolean(KEY_SAME_OAUTH_SIGNING_URL, false);
+ final boolean noVersionSuffix = mPreferences.getBoolean(KEY_NO_VERSION_SUFFIX, false);
final String consumerKey = getNonEmptyString(mPreferences, KEY_CONSUMER_KEY, TWITTER_CONSUMER_KEY_2);
final String consumerSecret = getNonEmptyString(mPreferences, KEY_CONSUMER_SECRET, TWITTER_CONSUMER_SECRET_2);
if (isEmpty(mAPIUrlFormat) || defaultApiChanged) {
@@ -448,6 +451,9 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
if (defaultApiChanged) {
mSameOAuthSigningUrl = sameOAuthSigningUrl;
}
+ if (defaultApiChanged) {
+ mNoVersionSuffix = noVersionSuffix;
+ }
if (isEmpty(mConsumerKey) || defaultApiChanged) {
mConsumerKey = consumerKey;
}
@@ -472,25 +478,27 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
}
}
- void onSignInResult(final SignInActivity.SigninResponse result) {
+ void onSignInResult(final SignInResponse result) {
if (result != null) {
if (result.succeed) {
final ContentValues values;
switch (result.auth_type) {
case Accounts.AUTH_TYPE_BASIC: {
values = makeAccountContentValuesBasic(result.conf, result.basic_username,
- result.basic_password, result.user, result.color, result.api_url_format);
+ result.basic_password, result.user, result.color,
+ result.api_url_format, result.no_version_suffix);
break;
}
case Accounts.AUTH_TYPE_TWIP_O_MODE: {
values = makeAccountContentValuesTWIP(result.conf, result.user, result.color,
- result.api_url_format);
+ result.api_url_format, result.no_version_suffix);
break;
}
case Accounts.AUTH_TYPE_OAUTH:
case Accounts.AUTH_TYPE_XAUTH: {
- values = makeAccountContentValuesOAuth(result.conf, result.access_token, result.user,
- result.auth_type, result.color, result.api_url_format, result.same_oauth_signing_url);
+ values = makeAccountContentValuesOAuth(result.conf, result.access_token,
+ result.user, result.auth_type, result.color, result.api_url_format,
+ result.same_oauth_signing_url, result.no_version_suffix);
break;
}
default: {
@@ -540,7 +548,7 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
mSetColorButton.setEnabled(false);
}
- public static abstract class AbstractSignInTask extends AsyncTask {
+ public static abstract class AbstractSignInTask extends AsyncTask {
protected final Configuration conf;
protected final SignInActivity callback;
@@ -551,7 +559,7 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
}
@Override
- protected void onPostExecute(final SigninResponse result) {
+ protected void onPostExecute(final SignInResponse result) {
if (callback != null) {
callback.onSignInResult(result);
}
@@ -597,11 +605,11 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
private final Context context;
private final String api_url_format;
- private final boolean same_oauth_signing_url;
+ private final boolean same_oauth_signing_url, no_version_suffix;
public BrowserSignInTask(final SignInActivity context, final Configuration conf, final String request_token,
final String request_token_secret, final String oauth_verifier, final Integer user_color,
- final String api_url_format, final boolean same_oauth_signing_url) {
+ final String api_url_format, final boolean same_oauth_signing_url, final boolean no_version_suffix) {
super(context, conf);
this.context = context;
this.conf = conf;
@@ -611,23 +619,24 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
this.user_color = user_color;
this.api_url_format = api_url_format;
this.same_oauth_signing_url = same_oauth_signing_url;
+ this.no_version_suffix = no_version_suffix;
}
@Override
- protected SigninResponse doInBackground(final Void... params) {
+ protected SignInResponse doInBackground(final Void... params) {
try {
final Twitter twitter = new TwitterFactory(conf).getInstance();
final AccessToken access_token = twitter.getOAuthAccessToken(new RequestToken(conf, request_token,
request_token_secret), oauth_verifier);
final long userId = access_token.getUserId();
- if (userId <= 0) return new SigninResponse(false, false, null);
+ if (userId <= 0) return new SignInResponse(false, false, null);
final User user = twitter.verifyCredentials();
- if (isUserLoggedIn(context, userId)) return new SigninResponse(true, false, null);
+ if (isUserLoggedIn(context, userId)) return new SignInResponse(true, false, null);
final int color = user_color != null ? user_color : analyseUserProfileColor(user);
- return new SigninResponse(conf, access_token, user, Accounts.AUTH_TYPE_OAUTH, color, api_url_format,
- same_oauth_signing_url);
+ return new SignInResponse(conf, access_token, user, Accounts.AUTH_TYPE_OAUTH, color,
+ api_url_format, same_oauth_signing_url, no_version_suffix);
} catch (final TwitterException e) {
- return new SigninResponse(false, false, e);
+ return new SignInResponse(false, false, e);
}
}
}
@@ -655,11 +664,11 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
private final Context context;
private final String api_url_format;
- private final boolean same_oauth_signing_url;
+ private final boolean same_oauth_signing_url, no_version_suffix;
public SignInTask(final SignInActivity context, final Configuration conf, final String username,
final String password, final int auth_type, final Integer user_color, final String api_url_format,
- final boolean same_oauth_signing_url) {
+ final boolean same_oauth_signing_url, final boolean no_version_suffix) {
super(context, conf);
this.context = context;
this.conf = conf;
@@ -669,10 +678,11 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
this.user_color = user_color;
this.api_url_format = api_url_format;
this.same_oauth_signing_url = same_oauth_signing_url;
+ this.no_version_suffix = no_version_suffix;
}
@Override
- protected SigninResponse doInBackground(final Void... params) {
+ protected SignInResponse doInBackground(final Void... params) {
try {
switch (auth_type) {
case Accounts.AUTH_TYPE_OAUTH:
@@ -687,67 +697,73 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
return authOAuth();
} catch (final TwitterException e) {
e.printStackTrace();
- return new SigninResponse(false, false, e);
+ return new SignInResponse(false, false, e);
} catch (final AuthenticationException e) {
e.printStackTrace();
- return new SigninResponse(false, false, e);
+ return new SignInResponse(false, false, e);
}
}
- private SigninResponse authBasic() throws TwitterException {
+ private SignInResponse authBasic() throws TwitterException {
final Twitter twitter = new TwitterFactory(conf).getInstance(new BasicAuthorization(username, password));
final User user = twitter.verifyCredentials();
final long user_id = user.getId();
- if (user_id <= 0) return new SigninResponse(false, false, null);
- if (isUserLoggedIn(context, user_id)) return new SigninResponse(true, false, null);
+ if (user_id <= 0) return new SignInResponse(false, false, null);
+ if (isUserLoggedIn(context, user_id)) return new SignInResponse(true, false, null);
final int color = user_color != null ? user_color : analyseUserProfileColor(user);
- return new SigninResponse(conf, username, password, user, color, api_url_format);
+ return new SignInResponse(conf, username, password, user, color, api_url_format,
+ no_version_suffix);
}
- private SigninResponse authOAuth() throws AuthenticationException, TwitterException {
+ private SignInResponse authOAuth() throws AuthenticationException, TwitterException {
final Twitter twitter = new TwitterFactory(conf).getInstance();
final OAuthPasswordAuthenticator authenticator = new OAuthPasswordAuthenticator(twitter);
final AccessToken access_token = authenticator.getOAuthAccessToken(username, password);
final long user_id = access_token.getUserId();
- if (user_id <= 0) return new SigninResponse(false, false, null);
+ if (user_id <= 0) return new SignInResponse(false, false, null);
final User user = twitter.verifyCredentials();
- if (isUserLoggedIn(context, user_id)) return new SigninResponse(true, false, null);
+ if (isUserLoggedIn(context, user_id)) return new SignInResponse(true, false, null);
final int color = user_color != null ? user_color : analyseUserProfileColor(user);
- return new SigninResponse(conf, access_token, user, Accounts.AUTH_TYPE_OAUTH, color, api_url_format,
- same_oauth_signing_url);
+ return new SignInResponse(conf, access_token, user, Accounts.AUTH_TYPE_OAUTH, color,
+ api_url_format, same_oauth_signing_url, no_version_suffix);
}
- private SigninResponse authTwipOMode() throws TwitterException {
+ private SignInResponse authTwipOMode() throws TwitterException {
final Twitter twitter = new TwitterFactory(conf).getInstance(new TwipOModeAuthorization());
final User user = twitter.verifyCredentials();
final long user_id = user.getId();
- if (user_id <= 0) return new SigninResponse(false, false, null);
- if (isUserLoggedIn(context, user_id)) return new SigninResponse(true, false, null);
+ if (user_id <= 0) return new SignInResponse(false, false, null);
+ if (isUserLoggedIn(context, user_id)) return new SignInResponse(true, false, null);
final int color = user_color != null ? user_color : analyseUserProfileColor(user);
- return new SigninResponse(conf, user, color, api_url_format);
+ return new SignInResponse(conf, user, color, api_url_format, no_version_suffix);
}
- private SigninResponse authxAuth() throws TwitterException {
+ private SignInResponse authxAuth() throws TwitterException {
final Twitter twitter = new TwitterFactory(conf).getInstance();
final AccessToken access_token = twitter.getOAuthAccessToken(username, password);
final User user = twitter.verifyCredentials();
final long user_id = user.getId();
- if (user_id <= 0) return new SigninResponse(false, false, null);
- if (isUserLoggedIn(context, user_id)) return new SigninResponse(true, false, null);
+ if (user_id <= 0) return new SignInResponse(false, false, null);
+ if (isUserLoggedIn(context, user_id)) return new SignInResponse(true, false, null);
final int color = user_color != null ? user_color : analyseUserProfileColor(user);
- return new SigninResponse(conf, access_token, user, Accounts.AUTH_TYPE_XAUTH, color, api_url_format,
- same_oauth_signing_url);
+ return new SignInResponse(conf, access_token, user, Accounts.AUTH_TYPE_XAUTH, color,
+ api_url_format, same_oauth_signing_url, no_version_suffix);
}
}
+ @Override
+ public int getThemeResourceId() {
+ return ThemeUtils.getSettingsThemeResource(this);
+ }
+
static interface SigninCallback {
- void onSigninResult(SigninResponse response);
+ void onSigninResult(SignInResponse response);
void onSigninStart();
}
- static class SigninResponse {
+ static class SignInResponse {
public final boolean already_logged_in, succeed;
public final Exception exception;
@@ -757,16 +773,16 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
public final User user;
public final int auth_type, color;
public final String api_url_format;
- public final boolean same_oauth_signing_url;
+ public final boolean same_oauth_signing_url, no_version_suffix;
- public SigninResponse(final boolean already_logged_in, final boolean succeed, final Exception exception) {
- this(already_logged_in, succeed, exception, null, null, null, null, null, 0, 0, null, false);
+ public SignInResponse(final boolean already_logged_in, final boolean succeed, final Exception exception) {
+ this(already_logged_in, succeed, exception, null, null, null, null, null, 0, 0, null, false, false);
}
- public SigninResponse(final boolean already_logged_in, final boolean succeed, final Exception exception,
+ public SignInResponse(final boolean already_logged_in, final boolean succeed, final Exception exception,
final Configuration conf, final String basic_username, final String basic_password,
final AccessToken access_token, final User user, final int auth_type, final int color,
- final String api_url_format, final boolean same_oauth_signing_url) {
+ final String api_url_format, final boolean same_oauth_signing_url, final boolean no_version_suffix) {
this.already_logged_in = already_logged_in;
this.succeed = succeed;
this.exception = exception;
@@ -779,23 +795,27 @@ public class SignInActivity extends BaseSupportActivity implements TwitterConsta
this.color = color;
this.api_url_format = api_url_format;
this.same_oauth_signing_url = same_oauth_signing_url;
+ this.no_version_suffix = no_version_suffix;
}
- public SigninResponse(final Configuration conf, final AccessToken access_token, final User user,
- final int auth_type, final int color, final String api_url_format, final boolean same_oauth_signing_url) {
+ public SignInResponse(final Configuration conf, final AccessToken access_token, final User user,
+ final int auth_type, final int color, final String api_url_format,
+ final boolean same_oauth_signing_url, final boolean no_version_suffix) {
this(false, true, null, conf, null, null, access_token, user, auth_type, color, api_url_format,
- same_oauth_signing_url);
+ same_oauth_signing_url, no_version_suffix);
}
- public SigninResponse(final Configuration conf, final String basic_username, final String basic_password,
- final User user, final int color, final String api_url_format) {
+ public SignInResponse(final Configuration conf, final String basic_username, final String basic_password,
+ final User user, final int color, final String api_url_format,
+ final boolean no_version_suffix) {
this(false, true, null, conf, basic_username, basic_password, null, user, Accounts.AUTH_TYPE_BASIC, color,
- api_url_format, false);
+ api_url_format, false, no_version_suffix);
}
- public SigninResponse(final Configuration conf, final User user, final int color, final String api_url_format) {
+ public SignInResponse(final Configuration conf, final User user, final int color,
+ final String api_url_format, final boolean no_version_suffix) {
this(false, true, null, conf, null, null, null, user, Accounts.AUTH_TYPE_TWIP_O_MODE, color,
- api_url_format, false);
+ api_url_format, false, no_version_suffix);
}
}
}
diff --git a/twidere/src/main/java/org/mariotaku/twidere/constant/SharedPreferenceConstants.java b/twidere/src/main/java/org/mariotaku/twidere/constant/SharedPreferenceConstants.java
index 3836c4866..ccff32c4e 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/constant/SharedPreferenceConstants.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/constant/SharedPreferenceConstants.java
@@ -248,6 +248,8 @@ public interface SharedPreferenceConstants {
public static final String KEY_API_URL_FORMAT = "api_url_format";
@Preference(type = BOOLEAN, hasDefault = true, defaultBoolean = false)
public static final String KEY_SAME_OAUTH_SIGNING_URL = "same_oauth_signing_url";
+ @Preference(type = BOOLEAN, hasDefault = true, defaultBoolean = false)
+ public static final String KEY_NO_VERSION_SUFFIX = "no_version_suffix";
@Preference(type = INT, hasDefault = true, defaultInt = Accounts.AUTH_TYPE_OAUTH)
public static final String KEY_AUTH_TYPE = "auth_type";
@Preference(type = STRING, hasDefault = true, defaultString = TwidereConstants.TWITTER_CONSUMER_KEY_2)
diff --git a/twidere/src/main/java/org/mariotaku/twidere/fragment/support/AddStatusFilterDialogFragment.java b/twidere/src/main/java/org/mariotaku/twidere/fragment/support/AddStatusFilterDialogFragment.java
index 8ae4c7916..2eb9d5dff 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/fragment/support/AddStatusFilterDialogFragment.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/fragment/support/AddStatusFilterDialogFragment.java
@@ -19,7 +19,7 @@
package org.mariotaku.twidere.fragment.support;
-import static org.mariotaku.twidere.util.ContentValuesCreator.makeFilterdUserContentValues;
+import static org.mariotaku.twidere.util.ContentValuesCreator.makeFilteredUserContentValues;
import static org.mariotaku.twidere.util.Utils.getDisplayName;
import static org.mariotaku.twidere.util.content.ContentResolverUtils.bulkDelete;
import static org.mariotaku.twidere.util.content.ContentResolverUtils.bulkInsert;
@@ -41,6 +41,7 @@ import org.mariotaku.twidere.R;
import org.mariotaku.twidere.model.ParcelableStatus;
import org.mariotaku.twidere.model.ParcelableUserMention;
import org.mariotaku.twidere.provider.TweetStore.Filters;
+import org.mariotaku.twidere.util.ContentValuesCreator;
import org.mariotaku.twidere.util.HtmlEscapeHelper;
import org.mariotaku.twidere.util.ParseUtils;
import org.mariotaku.twidere.util.ThemeUtils;
@@ -71,11 +72,11 @@ public class AddStatusFilterDialogFragment extends BaseSupportDialogFragment imp
if (value instanceof ParcelableUserMention) {
final ParcelableUserMention mention = (ParcelableUserMention) value;
user_ids.add(mention.id);
- user_values.add(makeFilterdUserContentValues(mention));
+ user_values.add(makeFilteredUserContentValues(mention));
} else if (value instanceof ParcelableStatus) {
final ParcelableStatus status = (ParcelableStatus) value;
user_ids.add(status.user_id);
- user_values.add(makeFilterdUserContentValues(status));
+ user_values.add(ContentValuesCreator.makeFilteredUserContentValues(status));
} else if (info.type == FilterItemInfo.FILTER_TYPE_KEYWORD) {
if (value != null) {
final String keyword = ParseUtils.parseString(value);
diff --git a/twidere/src/main/java/org/mariotaku/twidere/fragment/support/StatusFragment.java b/twidere/src/main/java/org/mariotaku/twidere/fragment/support/StatusFragment.java
index 29a13d2f7..93a644d51 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/fragment/support/StatusFragment.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/fragment/support/StatusFragment.java
@@ -65,7 +65,6 @@ import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
-import org.mariotaku.menucomponent.widget.MenuBar;
import org.mariotaku.refreshnow.widget.RefreshMode;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.activity.support.AccountSelectorActivity;
@@ -98,6 +97,7 @@ import org.mariotaku.twidere.util.Utils;
import org.mariotaku.twidere.view.ColorLabelRelativeLayout;
import org.mariotaku.twidere.view.ExtendedFrameLayout;
import org.mariotaku.twidere.view.StatusTextView;
+import org.mariotaku.twidere.view.TwidereMenuBar;
import java.io.IOException;
import java.util.ArrayList;
@@ -156,7 +156,7 @@ public class StatusFragment extends ParcelableStatusesListFragment implements On
private boolean mFollowInfoDisplayed, mLocationInfoDisplayed;
private boolean mStatusLoaderInitialized, mLocationLoaderInitialized;
private boolean mFollowInfoLoaderInitialized;
- ;
+
private boolean mShouldScroll;
private SharedPreferences mPreferences;
private AsyncTwitterWrapper mTwitterWrapper;
@@ -171,7 +171,7 @@ public class StatusFragment extends ParcelableStatusesListFragment implements On
private Button mRetryButton;
private View mMainContent, mFollowIndicator, mImagePreviewContainer, mLocationContainer, mLocationBackgroundView;
private ColorLabelRelativeLayout mProfileView;
- private MenuBar mMenuBar;
+ private TwidereMenuBar mMenuBar;
private ProgressBar mDetailsLoadProgress, mFollowInfoProgress;
private LinearLayout mImagePreviewGrid;
private View mHeaderView;
@@ -577,7 +577,7 @@ public class StatusFragment extends ParcelableStatusesListFragment implements On
final View view = inflater.inflate(R.layout.fragment_details_page, null, false);
mMainContent = view.findViewById(R.id.content);
mDetailsLoadProgress = (ProgressBar) view.findViewById(R.id.details_load_progress);
- mMenuBar = (MenuBar) view.findViewById(R.id.menu_bar);
+ mMenuBar = (TwidereMenuBar) view.findViewById(R.id.menu_bar);
mDetailsContainer = (ExtendedFrameLayout) view.findViewById(R.id.details_container);
mDetailsContainer.addView(super.onCreateView(inflater, container, savedInstanceState));
mHeaderView = inflater.inflate(R.layout.header_status, null, false);
diff --git a/twidere/src/main/java/org/mariotaku/twidere/fragment/support/UserListDetailsFragment.java b/twidere/src/main/java/org/mariotaku/twidere/fragment/support/UserListDetailsFragment.java
index 1fbf9afd0..8400ae5a1 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/fragment/support/UserListDetailsFragment.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/fragment/support/UserListDetailsFragment.java
@@ -19,18 +19,6 @@
package org.mariotaku.twidere.fragment.support;
-import static android.text.TextUtils.isEmpty;
-import static org.mariotaku.twidere.util.Utils.addIntentToMenu;
-import static org.mariotaku.twidere.util.Utils.getAccountColor;
-import static org.mariotaku.twidere.util.Utils.getDisplayName;
-import static org.mariotaku.twidere.util.Utils.getLocalizedNumber;
-import static org.mariotaku.twidere.util.Utils.getTwitterInstance;
-import static org.mariotaku.twidere.util.Utils.openUserListMembers;
-import static org.mariotaku.twidere.util.Utils.openUserListSubscribers;
-import static org.mariotaku.twidere.util.Utils.openUserListTimeline;
-import static org.mariotaku.twidere.util.Utils.openUserProfile;
-import static org.mariotaku.twidere.util.Utils.setMenuItemAvailability;
-
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
@@ -67,6 +55,7 @@ import android.widget.ListView;
import android.widget.TextView;
import org.mariotaku.menucomponent.widget.MenuBar;
+import org.mariotaku.menucomponent.widget.MenuBar.MenuBarListener;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.activity.support.UserListSelectorActivity;
import org.mariotaku.twidere.adapter.ListActionAdapter;
@@ -82,533 +71,547 @@ import org.mariotaku.twidere.util.ParseUtils;
import org.mariotaku.twidere.util.ThemeUtils;
import org.mariotaku.twidere.util.TwidereLinkify;
import org.mariotaku.twidere.view.ColorLabelRelativeLayout;
+import org.mariotaku.twidere.view.TwidereMenuBar;
+
+import java.util.Locale;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.UserList;
-import java.util.Locale;
+import static android.text.TextUtils.isEmpty;
+import static org.mariotaku.twidere.util.Utils.addIntentToMenu;
+import static org.mariotaku.twidere.util.Utils.getAccountColor;
+import static org.mariotaku.twidere.util.Utils.getDisplayName;
+import static org.mariotaku.twidere.util.Utils.getLocalizedNumber;
+import static org.mariotaku.twidere.util.Utils.getTwitterInstance;
+import static org.mariotaku.twidere.util.Utils.openUserListMembers;
+import static org.mariotaku.twidere.util.Utils.openUserListSubscribers;
+import static org.mariotaku.twidere.util.Utils.openUserListTimeline;
+import static org.mariotaku.twidere.util.Utils.openUserProfile;
+import static org.mariotaku.twidere.util.Utils.setMenuItemAvailability;
public class UserListDetailsFragment extends BaseSupportListFragment implements OnClickListener, OnItemClickListener,
- OnItemLongClickListener, OnMenuItemClickListener, LoaderCallbacks>,
- Panes.Right {
+ OnItemLongClickListener, OnMenuItemClickListener, LoaderCallbacks>,
+ Panes.Right {
- private ImageLoaderWrapper mProfileImageLoader;
- private AsyncTwitterWrapper mTwitterWrapper;
+ private ImageLoaderWrapper mProfileImageLoader;
+ private AsyncTwitterWrapper mTwitterWrapper;
- private ImageView mProfileImageView;
- private TextView mListNameView, mCreatedByView, mDescriptionView, mErrorMessageView;
- private View mListContainer, mErrorRetryContainer;
- private ColorLabelRelativeLayout mProfileContainer;
- private View mDescriptionContainer;
- private Button mRetryButton;
- private ListView mListView;
- private View mHeaderView;
- private MenuBar mMenuBar;
+ private ImageView mProfileImageView;
+ private TextView mListNameView, mCreatedByView, mDescriptionView, mErrorMessageView;
+ private View mListContainer, mErrorRetryContainer;
+ private ColorLabelRelativeLayout mProfileContainer;
+ private View mDescriptionContainer;
+ private Button mRetryButton;
+ private ListView mListView;
+ private View mHeaderView;
+ private TwidereMenuBar mMenuBar;
- private ListActionAdapter mAdapter;
+ private ListActionAdapter mAdapter;
- private ParcelableUserList mUserList;
- private Locale mLocale;
+ private ParcelableUserList mUserList;
+ private Locale mLocale;
- private boolean mUserListLoaderInitialized;
+ private boolean mUserListLoaderInitialized;
- private final BroadcastReceiver mStatusReceiver = new BroadcastReceiver() {
+ private final BroadcastReceiver mStatusReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(final Context context, final Intent intent) {
- if (getActivity() == null || !isAdded() || isDetached()) return;
- final String action = intent.getAction();
- final ParcelableUserList user_list = intent.getParcelableExtra(EXTRA_USER_LIST);
- if (user_list == null || mUserList == null || !intent.getBooleanExtra(EXTRA_SUCCEED, false)) return;
- if (BROADCAST_USER_LIST_DETAILS_UPDATED.equals(action)) {
- if (user_list.id == mUserList.id) {
- getUserListInfo(true);
- }
- } else if (BROADCAST_USER_LIST_SUBSCRIBED.equals(action) || BROADCAST_USER_LIST_UNSUBSCRIBED.equals(action)) {
- if (user_list.id == mUserList.id) {
- getUserListInfo(true);
- }
- }
- }
- };
+ @Override
+ public void onReceive(final Context context, final Intent intent) {
+ if (getActivity() == null || !isAdded() || isDetached()) return;
+ final String action = intent.getAction();
+ final ParcelableUserList user_list = intent.getParcelableExtra(EXTRA_USER_LIST);
+ if (user_list == null || mUserList == null || !intent.getBooleanExtra(EXTRA_SUCCEED, false))
+ return;
+ if (BROADCAST_USER_LIST_DETAILS_UPDATED.equals(action)) {
+ if (user_list.id == mUserList.id) {
+ getUserListInfo(true);
+ }
+ } else if (BROADCAST_USER_LIST_SUBSCRIBED.equals(action) || BROADCAST_USER_LIST_UNSUBSCRIBED.equals(action)) {
+ if (user_list.id == mUserList.id) {
+ getUserListInfo(true);
+ }
+ }
+ }
+ };
- public void displayUserList(final ParcelableUserList userList) {
- if (userList == null || getActivity() == null) return;
- getLoaderManager().destroyLoader(0);
- final boolean is_myself = userList.account_id == userList.user_id;
- mErrorRetryContainer.setVisibility(View.GONE);
- mUserList = userList;
- mProfileContainer.drawEnd(getAccountColor(getActivity(), userList.account_id));
- mListNameView.setText(userList.name);
- final String display_name = getDisplayName(getActivity(), userList.user_id, userList.user_name,
- userList.user_screen_name, false);
- mCreatedByView.setText(getString(R.string.created_by, display_name));
- final String description = userList.description;
- mDescriptionContainer.setVisibility(is_myself || !isEmpty(description) ? View.VISIBLE : View.GONE);
- mDescriptionView.setText(description);
- final TwidereLinkify linkify = new TwidereLinkify(
- new OnLinkClickHandler(getActivity(), getMultiSelectManager()));
- linkify.applyAllLinks(mDescriptionView, userList.account_id, false);
- mDescriptionView.setMovementMethod(LinkMovementMethod.getInstance());
- mProfileImageLoader.displayProfileImage(mProfileImageView, userList.user_profile_image_url);
- mAdapter.notifyDataSetChanged();
- setMenu(mMenuBar.getMenu());
- mMenuBar.show();
- invalidateOptionsMenu();
- }
+ public void displayUserList(final ParcelableUserList userList) {
+ if (userList == null || getActivity() == null) return;
+ getLoaderManager().destroyLoader(0);
+ final boolean is_myself = userList.account_id == userList.user_id;
+ mErrorRetryContainer.setVisibility(View.GONE);
+ mUserList = userList;
+ mProfileContainer.drawEnd(getAccountColor(getActivity(), userList.account_id));
+ mListNameView.setText(userList.name);
+ final String display_name = getDisplayName(getActivity(), userList.user_id, userList.user_name,
+ userList.user_screen_name, false);
+ mCreatedByView.setText(getString(R.string.created_by, display_name));
+ final String description = userList.description;
+ mDescriptionContainer.setVisibility(is_myself || !isEmpty(description) ? View.VISIBLE : View.GONE);
+ mDescriptionView.setText(description);
+ final TwidereLinkify linkify = new TwidereLinkify(
+ new OnLinkClickHandler(getActivity(), getMultiSelectManager()));
+ linkify.applyAllLinks(mDescriptionView, userList.account_id, false);
+ mDescriptionView.setMovementMethod(LinkMovementMethod.getInstance());
+ mProfileImageLoader.displayProfileImage(mProfileImageView, userList.user_profile_image_url);
+ mAdapter.notifyDataSetChanged();
+ setMenu(mMenuBar.getMenu());
+ mMenuBar.show();
+ invalidateOptionsMenu();
+ }
- public void getUserListInfo(final boolean omit_intent_extra) {
- final LoaderManager lm = getLoaderManager();
- lm.destroyLoader(0);
- final Bundle args = new Bundle(getArguments());
- args.putBoolean(EXTRA_OMIT_INTENT_EXTRA, omit_intent_extra);
- if (!mUserListLoaderInitialized) {
- lm.initLoader(0, args, this);
- mUserListLoaderInitialized = true;
- } else {
- lm.restartLoader(0, args, this);
- }
- }
+ public void getUserListInfo(final boolean omit_intent_extra) {
+ final LoaderManager lm = getLoaderManager();
+ lm.destroyLoader(0);
+ final Bundle args = new Bundle(getArguments());
+ args.putBoolean(EXTRA_OMIT_INTENT_EXTRA, omit_intent_extra);
+ if (!mUserListLoaderInitialized) {
+ lm.initLoader(0, args, this);
+ mUserListLoaderInitialized = true;
+ } else {
+ lm.restartLoader(0, args, this);
+ }
+ }
- @Override
- public void onActivityCreated(final Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- setHasOptionsMenu(true);
- mTwitterWrapper = getApplication().getTwitterWrapper();
- mLocale = getResources().getConfiguration().locale;
- mProfileImageLoader = getApplication().getImageLoaderWrapper();
- mAdapter = new ListActionAdapter(getActivity());
- mAdapter.add(new ListTimelineAction(1));
- mAdapter.add(new ListMembersAction(2));
- mAdapter.add(new ListSubscribersAction(3));
- mProfileImageView.setOnClickListener(this);
- mProfileContainer.setOnClickListener(this);
- mRetryButton.setOnClickListener(this);
- setListAdapter(null);
- mListView = getListView();
- mListView.addHeaderView(mHeaderView, null, false);
- mListView.setOnItemClickListener(this);
- mListView.setOnItemLongClickListener(this);
- setListAdapter(mAdapter);
- getUserListInfo(false);
+ @Override
+ public void onActivityCreated(final Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ setHasOptionsMenu(true);
+ mTwitterWrapper = getApplication().getTwitterWrapper();
+ mLocale = getResources().getConfiguration().locale;
+ mProfileImageLoader = getApplication().getImageLoaderWrapper();
+ mAdapter = new ListActionAdapter(getActivity());
+ mAdapter.add(new ListTimelineAction(1));
+ mAdapter.add(new ListMembersAction(2));
+ mAdapter.add(new ListSubscribersAction(3));
+ mProfileImageView.setOnClickListener(this);
+ mProfileContainer.setOnClickListener(this);
+ mRetryButton.setOnClickListener(this);
+ setListAdapter(null);
+ mListView = getListView();
+ mListView.addHeaderView(mHeaderView, null, false);
+ mListView.setOnItemClickListener(this);
+ mListView.setOnItemLongClickListener(this);
+ setListAdapter(mAdapter);
+ getUserListInfo(false);
- mMenuBar.inflate(R.menu.menu_user_list);
- mMenuBar.setIsBottomBar(true);
- mMenuBar.setOnMenuItemClickListener(this);
- setMenu(mMenuBar.getMenu());
- mMenuBar.show();
- }
+ mMenuBar.inflate(R.menu.menu_user_list);
+ mMenuBar.setIsBottomBar(true);
+ mMenuBar.setOnMenuItemClickListener(this);
+ setMenu(mMenuBar.getMenu());
+ mMenuBar.show();
+ }
- @Override
- public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
- switch (requestCode) {
- case REQUEST_SELECT_USER: {
- if (resultCode != Activity.RESULT_OK || !data.hasExtra(EXTRA_USER) || mTwitterWrapper == null
- || mUserList == null) return;
- final ParcelableUser user = data.getParcelableExtra(EXTRA_USER);
- mTwitterWrapper.addUserListMembersAsync(mUserList.account_id, mUserList.id, user);
- return;
- }
- }
- super.onActivityResult(requestCode, resultCode, data);
- }
+ @Override
+ public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
+ switch (requestCode) {
+ case REQUEST_SELECT_USER: {
+ if (resultCode != Activity.RESULT_OK || !data.hasExtra(EXTRA_USER) || mTwitterWrapper == null
+ || mUserList == null) return;
+ final ParcelableUser user = data.getParcelableExtra(EXTRA_USER);
+ mTwitterWrapper.addUserListMembersAsync(mUserList.account_id, mUserList.id, user);
+ return;
+ }
+ }
+ super.onActivityResult(requestCode, resultCode, data);
+ }
- @Override
- public void onClick(final View view) {
- switch (view.getId()) {
- case R.id.retry: {
- getUserListInfo(true);
- break;
- }
- case R.id.profile_image: {
- if (mUserList == null) return;
- openUserProfile(getActivity(), mUserList.account_id, mUserList.user_id, mUserList.user_screen_name);
- break;
- }
- }
+ @Override
+ public void onClick(final View view) {
+ switch (view.getId()) {
+ case R.id.retry: {
+ getUserListInfo(true);
+ break;
+ }
+ case R.id.profile_image: {
+ if (mUserList == null) return;
+ openUserProfile(getActivity(), mUserList.account_id, mUserList.user_id, mUserList.user_screen_name);
+ break;
+ }
+ }
- }
+ }
- @Override
- public Loader> onCreateLoader(final int id, final Bundle args) {
- mListContainer.setVisibility(View.VISIBLE);
- mErrorMessageView.setText(null);
- mErrorMessageView.setVisibility(View.GONE);
- mErrorRetryContainer.setVisibility(View.GONE);
- setListShown(false);
- setProgressBarIndeterminateVisibility(true);
- final long accountId = args != null ? args.getLong(EXTRA_ACCOUNT_ID, -1) : -1;
- final long userId = args != null ? args.getLong(EXTRA_USER_ID, -1) : -1;
- final int listId = args != null ? args.getInt(EXTRA_LIST_ID, -1) : -1;
- final String listName = args != null ? args.getString(EXTRA_LIST_NAME) : null;
- final String screenName = args != null ? args.getString(EXTRA_SCREEN_NAME) : null;
- final boolean omitIntentExtra = args != null ? args.getBoolean(EXTRA_OMIT_INTENT_EXTRA, true) : true;
- return new ParcelableUserListLoader(getActivity(), omitIntentExtra, getArguments(), accountId, listId,
- listName, userId, screenName);
- }
+ @Override
+ public Loader> onCreateLoader(final int id, final Bundle args) {
+ mListContainer.setVisibility(View.VISIBLE);
+ mErrorMessageView.setText(null);
+ mErrorMessageView.setVisibility(View.GONE);
+ mErrorRetryContainer.setVisibility(View.GONE);
+ setListShown(false);
+ setProgressBarIndeterminateVisibility(true);
+ final long accountId = args != null ? args.getLong(EXTRA_ACCOUNT_ID, -1) : -1;
+ final long userId = args != null ? args.getLong(EXTRA_USER_ID, -1) : -1;
+ final int listId = args != null ? args.getInt(EXTRA_LIST_ID, -1) : -1;
+ final String listName = args != null ? args.getString(EXTRA_LIST_NAME) : null;
+ final String screenName = args != null ? args.getString(EXTRA_SCREEN_NAME) : null;
+ final boolean omitIntentExtra = args != null ? args.getBoolean(EXTRA_OMIT_INTENT_EXTRA, true) : true;
+ return new ParcelableUserListLoader(getActivity(), omitIntentExtra, getArguments(), accountId, listId,
+ listName, userId, screenName);
+ }
- @Override
- public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
- mHeaderView = inflater.inflate(R.layout.header_user_list_details, null);
- mProfileContainer = (ColorLabelRelativeLayout) mHeaderView.findViewById(R.id.profile);
- mListNameView = (TextView) mHeaderView.findViewById(R.id.list_name);
- mCreatedByView = (TextView) mHeaderView.findViewById(R.id.created_by);
- mDescriptionView = (TextView) mHeaderView.findViewById(R.id.description);
- mProfileImageView = (ImageView) mHeaderView.findViewById(R.id.profile_image);
- mDescriptionContainer = mHeaderView.findViewById(R.id.description_container);
- mListContainer = super.onCreateView(inflater, container, savedInstanceState);
- final View containerView = inflater.inflate(R.layout.fragment_details_page, null);
- ((FrameLayout) containerView.findViewById(R.id.details_container)).addView(mListContainer);
- mErrorRetryContainer = containerView.findViewById(R.id.error_retry_container);
- mRetryButton = (Button) containerView.findViewById(R.id.retry);
- mErrorMessageView = (TextView) containerView.findViewById(R.id.error_message);
- mMenuBar = (MenuBar) containerView.findViewById(R.id.menu_bar);
- final View cardView = mHeaderView.findViewById(R.id.card);
- ThemeUtils.applyThemeAlphaToDrawable(cardView.getContext(), cardView.getBackground());
- return containerView;
- }
+ @Override
+ public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
+ mHeaderView = inflater.inflate(R.layout.header_user_list_details, null);
+ mProfileContainer = (ColorLabelRelativeLayout) mHeaderView.findViewById(R.id.profile);
+ mListNameView = (TextView) mHeaderView.findViewById(R.id.list_name);
+ mCreatedByView = (TextView) mHeaderView.findViewById(R.id.created_by);
+ mDescriptionView = (TextView) mHeaderView.findViewById(R.id.description);
+ mProfileImageView = (ImageView) mHeaderView.findViewById(R.id.profile_image);
+ mDescriptionContainer = mHeaderView.findViewById(R.id.description_container);
+ mListContainer = super.onCreateView(inflater, container, savedInstanceState);
+ final View containerView = inflater.inflate(R.layout.fragment_details_page, null);
+ ((FrameLayout) containerView.findViewById(R.id.details_container)).addView(mListContainer);
+ mErrorRetryContainer = containerView.findViewById(R.id.error_retry_container);
+ mRetryButton = (Button) containerView.findViewById(R.id.retry);
+ mErrorMessageView = (TextView) containerView.findViewById(R.id.error_message);
+ mMenuBar = (TwidereMenuBar) containerView.findViewById(R.id.menu_bar);
+ final View cardView = mHeaderView.findViewById(R.id.card);
+ ThemeUtils.applyThemeAlphaToDrawable(cardView.getContext(), cardView.getBackground());
+ return containerView;
+ }
- @Override
- public void onDestroyView() {
- mUserList = null;
- getLoaderManager().destroyLoader(0);
- super.onDestroyView();
- }
+ @Override
+ public void onDestroyView() {
+ mUserList = null;
+ getLoaderManager().destroyLoader(0);
+ super.onDestroyView();
+ }
- @Override
- public void onItemClick(final AdapterView> adapter, final View view, final int position, final long id) {
- final ListAction action = mAdapter.findItem(id);
- if (action != null) {
- action.onClick();
- }
- }
+ @Override
+ public void onItemClick(final AdapterView> adapter, final View view, final int position, final long id) {
+ final ListAction action = mAdapter.findItem(id);
+ if (action != null) {
+ action.onClick();
+ }
+ }
- @Override
- public boolean onItemLongClick(final AdapterView> adapter, final View view, final int position, final long id) {
- final ListAction action = mAdapter.findItem(id);
- if (action != null) return action.onLongClick();
- return false;
- }
+ @Override
+ public boolean onItemLongClick(final AdapterView> adapter, final View view, final int position, final long id) {
+ final ListAction action = mAdapter.findItem(id);
+ if (action != null) return action.onLongClick();
+ return false;
+ }
- @Override
- public void onLoaderReset(final Loader> loader) {
+ @Override
+ public void onLoaderReset(final Loader> loader) {
- }
+ }
- @Override
- public void onLoadFinished(final Loader> loader,
- final SingleResponse data) {
- if (data == null) return;
- if (getActivity() == null) return;
- if (data.getData() != null) {
- final ParcelableUserList list = data.getData();
- setListShown(true);
- displayUserList(list);
- mErrorRetryContainer.setVisibility(View.GONE);
- } else {
- if (data.hasException()) {
- mErrorMessageView.setText(data.getException().getMessage());
- mErrorMessageView.setVisibility(View.VISIBLE);
- }
- mListContainer.setVisibility(View.GONE);
- mErrorRetryContainer.setVisibility(View.VISIBLE);
- }
- setProgressBarIndeterminateVisibility(false);
- }
+ @Override
+ public void onLoadFinished(final Loader> loader,
+ final SingleResponse data) {
+ if (data == null) return;
+ if (getActivity() == null) return;
+ if (data.getData() != null) {
+ final ParcelableUserList list = data.getData();
+ setListShown(true);
+ displayUserList(list);
+ mErrorRetryContainer.setVisibility(View.GONE);
+ } else {
+ if (data.hasException()) {
+ mErrorMessageView.setText(data.getException().getMessage());
+ mErrorMessageView.setVisibility(View.VISIBLE);
+ }
+ mListContainer.setVisibility(View.GONE);
+ mErrorRetryContainer.setVisibility(View.VISIBLE);
+ }
+ setProgressBarIndeterminateVisibility(false);
+ }
- @Override
- public boolean onMenuItemClick(final MenuItem item) {
- final AsyncTwitterWrapper twitter = getTwitterWrapper();
- final ParcelableUserList userList = mUserList;
- if (twitter == null || userList == null) return false;
- switch (item.getItemId()) {
- case MENU_ADD: {
- if (userList.user_id != userList.account_id) return false;
- final Intent intent = new Intent(INTENT_ACTION_SELECT_USER);
- intent.setClass(getActivity(), UserListSelectorActivity.class);
- intent.putExtra(EXTRA_ACCOUNT_ID, userList.account_id);
- startActivityForResult(intent, REQUEST_SELECT_USER);
- break;
- }
- case MENU_DELETE: {
- if (userList.user_id != userList.account_id) return false;
- DestroyUserListDialogFragment.show(getFragmentManager(), userList);
- break;
- }
- case MENU_EDIT: {
- final Bundle args = new Bundle();
- args.putLong(EXTRA_ACCOUNT_ID, userList.account_id);
- args.putString(EXTRA_LIST_NAME, userList.name);
- args.putString(EXTRA_DESCRIPTION, userList.description);
- args.putBoolean(EXTRA_IS_PUBLIC, userList.is_public);
- args.putLong(EXTRA_LIST_ID, userList.id);
- final DialogFragment f = new EditUserListDialogFragment();
- f.setArguments(args);
- f.show(getFragmentManager(), "edit_user_list_details");
- return true;
- }
- case MENU_FOLLOW: {
- if (userList.is_following) {
- DestroyUserListSubscriptionDialogFragment.show(getFragmentManager(), userList);
- } else {
- twitter.createUserListSubscriptionAsync(userList.account_id, userList.id);
- }
- return true;
- }
- default: {
- if (item.getIntent() != null) {
- try {
- startActivity(item.getIntent());
- } catch (final ActivityNotFoundException e) {
- Log.w(LOGTAG, e);
- return false;
- }
- }
- break;
- }
- }
- return true;
- }
+ @Override
+ public boolean onMenuItemClick(final MenuItem item) {
+ final AsyncTwitterWrapper twitter = getTwitterWrapper();
+ final ParcelableUserList userList = mUserList;
+ if (twitter == null || userList == null) return false;
+ switch (item.getItemId()) {
+ case MENU_ADD: {
+ if (userList.user_id != userList.account_id) return false;
+ final Intent intent = new Intent(INTENT_ACTION_SELECT_USER);
+ intent.setClass(getActivity(), UserListSelectorActivity.class);
+ intent.putExtra(EXTRA_ACCOUNT_ID, userList.account_id);
+ startActivityForResult(intent, REQUEST_SELECT_USER);
+ break;
+ }
+ case MENU_DELETE: {
+ if (userList.user_id != userList.account_id) return false;
+ DestroyUserListDialogFragment.show(getFragmentManager(), userList);
+ break;
+ }
+ case MENU_EDIT: {
+ final Bundle args = new Bundle();
+ args.putLong(EXTRA_ACCOUNT_ID, userList.account_id);
+ args.putString(EXTRA_LIST_NAME, userList.name);
+ args.putString(EXTRA_DESCRIPTION, userList.description);
+ args.putBoolean(EXTRA_IS_PUBLIC, userList.is_public);
+ args.putLong(EXTRA_LIST_ID, userList.id);
+ final DialogFragment f = new EditUserListDialogFragment();
+ f.setArguments(args);
+ f.show(getFragmentManager(), "edit_user_list_details");
+ return true;
+ }
+ case MENU_FOLLOW: {
+ if (userList.is_following) {
+ DestroyUserListSubscriptionDialogFragment.show(getFragmentManager(), userList);
+ } else {
+ twitter.createUserListSubscriptionAsync(userList.account_id, userList.id);
+ }
+ return true;
+ }
+ default: {
+ if (item.getIntent() != null) {
+ try {
+ startActivity(item.getIntent());
+ } catch (final ActivityNotFoundException e) {
+ Log.w(LOGTAG, e);
+ return false;
+ }
+ }
+ break;
+ }
+ }
+ return true;
+ }
- @Override
- public void onStart() {
- super.onStart();
- final IntentFilter filter = new IntentFilter(BROADCAST_USER_LIST_DETAILS_UPDATED);
- filter.addAction(BROADCAST_USER_LIST_SUBSCRIBED);
- filter.addAction(BROADCAST_USER_LIST_UNSUBSCRIBED);
- registerReceiver(mStatusReceiver, filter);
- }
+ @Override
+ public void onStart() {
+ super.onStart();
+ final IntentFilter filter = new IntentFilter(BROADCAST_USER_LIST_DETAILS_UPDATED);
+ filter.addAction(BROADCAST_USER_LIST_SUBSCRIBED);
+ filter.addAction(BROADCAST_USER_LIST_UNSUBSCRIBED);
+ registerReceiver(mStatusReceiver, filter);
+ }
- @Override
- public void onStop() {
- unregisterReceiver(mStatusReceiver);
- super.onStop();
- }
+ @Override
+ public void onStop() {
+ unregisterReceiver(mStatusReceiver);
+ super.onStop();
+ }
- @Override
- public void onViewCreated(final View view, final Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- }
+ @Override
+ public void onViewCreated(final View view, final Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ }
- private void setMenu(final Menu menu) {
- final AsyncTwitterWrapper twitter = getTwitterWrapper();
- final ParcelableUserList userList = mUserList;
- final MenuItem followItem = menu.findItem(MENU_FOLLOW);
- if (followItem != null) {
- followItem.setEnabled(userList != null);
- if (userList == null) {
- followItem.setIcon(android.R.color.transparent);
- }
- }
- if (twitter == null || userList == null) return;
- final boolean isMyList = userList.user_id == userList.account_id;
- setMenuItemAvailability(menu, MENU_EDIT, isMyList);
- setMenuItemAvailability(menu, MENU_ADD, isMyList);
- setMenuItemAvailability(menu, MENU_DELETE, isMyList);
- final boolean isFollowing = userList.is_following;
- if (followItem != null) {
- followItem.setVisible(!isMyList);
- if (isFollowing) {
- followItem.setIcon(R.drawable.ic_action_cancel);
- followItem.setTitle(R.string.unsubscribe);
- } else {
- followItem.setIcon(R.drawable.ic_action_add);
- followItem.setTitle(R.string.subscribe);
- }
- }
- menu.removeGroup(MENU_GROUP_USER_LIST_EXTENSION);
- final Intent extensionsIntent = new Intent(INTENT_ACTION_EXTENSION_OPEN_USER_LIST);
- extensionsIntent.setExtrasClassLoader(getActivity().getClassLoader());
- extensionsIntent.putExtra(EXTRA_USER_LIST, mUserList);
- addIntentToMenu(getActivity(), menu, extensionsIntent, MENU_GROUP_USER_LIST_EXTENSION);
- }
+ private void setMenu(final Menu menu) {
+ final AsyncTwitterWrapper twitter = getTwitterWrapper();
+ final ParcelableUserList userList = mUserList;
+ final MenuItem followItem = menu.findItem(MENU_FOLLOW);
+ if (followItem != null) {
+ followItem.setEnabled(userList != null);
+ if (userList == null) {
+ followItem.setIcon(android.R.color.transparent);
+ }
+ }
+ if (twitter == null || userList == null) return;
+ final boolean isMyList = userList.user_id == userList.account_id;
+ setMenuItemAvailability(menu, MENU_EDIT, isMyList);
+ setMenuItemAvailability(menu, MENU_ADD, isMyList);
+ setMenuItemAvailability(menu, MENU_DELETE, isMyList);
+ final boolean isFollowing = userList.is_following;
+ if (followItem != null) {
+ followItem.setVisible(!isMyList);
+ if (isFollowing) {
+ followItem.setIcon(R.drawable.ic_action_cancel);
+ followItem.setTitle(R.string.unsubscribe);
+ } else {
+ followItem.setIcon(R.drawable.ic_action_add);
+ followItem.setTitle(R.string.subscribe);
+ }
+ }
+ menu.removeGroup(MENU_GROUP_USER_LIST_EXTENSION);
+ final Intent extensionsIntent = new Intent(INTENT_ACTION_EXTENSION_OPEN_USER_LIST);
+ extensionsIntent.setExtrasClassLoader(getActivity().getClassLoader());
+ extensionsIntent.putExtra(EXTRA_USER_LIST, mUserList);
+ addIntentToMenu(getActivity(), menu, extensionsIntent, MENU_GROUP_USER_LIST_EXTENSION);
+ }
- public static class EditUserListDialogFragment extends BaseSupportDialogFragment implements
- DialogInterface.OnClickListener {
+ public static class EditUserListDialogFragment extends BaseSupportDialogFragment implements
+ DialogInterface.OnClickListener {
- private EditText mEditName, mEditDescription;
- private CheckBox mPublicCheckBox;
- private String mName, mDescription;
- private long mAccountId;
- private long mListId;
- private boolean mIsPublic;
- private AsyncTwitterWrapper mTwitterWrapper;
+ private EditText mEditName, mEditDescription;
+ private CheckBox mPublicCheckBox;
+ private String mName, mDescription;
+ private long mAccountId;
+ private long mListId;
+ private boolean mIsPublic;
+ private AsyncTwitterWrapper mTwitterWrapper;
- @Override
- public void onClick(final DialogInterface dialog, final int which) {
- if (mAccountId <= 0) return;
- switch (which) {
- case DialogInterface.BUTTON_POSITIVE: {
- mName = ParseUtils.parseString(mEditName.getText());
- mDescription = ParseUtils.parseString(mEditDescription.getText());
- mIsPublic = mPublicCheckBox.isChecked();
- if (mName == null || mName.length() <= 0) return;
- mTwitterWrapper.updateUserListDetails(mAccountId, mListId, mIsPublic, mName, mDescription);
- break;
- }
- }
+ @Override
+ public void onClick(final DialogInterface dialog, final int which) {
+ if (mAccountId <= 0) return;
+ switch (which) {
+ case DialogInterface.BUTTON_POSITIVE: {
+ mName = ParseUtils.parseString(mEditName.getText());
+ mDescription = ParseUtils.parseString(mEditDescription.getText());
+ mIsPublic = mPublicCheckBox.isChecked();
+ if (mName == null || mName.length() <= 0) return;
+ mTwitterWrapper.updateUserListDetails(mAccountId, mListId, mIsPublic, mName, mDescription);
+ break;
+ }
+ }
- }
+ }
- @Override
- public Dialog onCreateDialog(final Bundle savedInstanceState) {
- mTwitterWrapper = getApplication().getTwitterWrapper();
- final Bundle bundle = savedInstanceState == null ? getArguments() : savedInstanceState;
- mAccountId = bundle != null ? bundle.getLong(EXTRA_ACCOUNT_ID, -1) : -1;
- mListId = bundle != null ? bundle.getLong(EXTRA_LIST_ID, -1) : -1;
- mName = bundle != null ? bundle.getString(EXTRA_LIST_NAME) : null;
- mDescription = bundle != null ? bundle.getString(EXTRA_DESCRIPTION) : null;
- mIsPublic = bundle != null ? bundle.getBoolean(EXTRA_IS_PUBLIC, true) : true;
- final Context wrapped = ThemeUtils.getDialogThemedContext(getActivity());
- final AlertDialog.Builder builder = new AlertDialog.Builder(wrapped);
- final View view = LayoutInflater.from(wrapped).inflate(R.layout.edit_user_list_detail, null);
- builder.setView(view);
- mEditName = (EditText) view.findViewById(R.id.name);
- mEditDescription = (EditText) view.findViewById(R.id.description);
- mPublicCheckBox = (CheckBox) view.findViewById(R.id.is_public);
- if (mName != null) {
- mEditName.setText(mName);
- }
- if (mDescription != null) {
- mEditDescription.setText(mDescription);
- }
- mPublicCheckBox.setChecked(mIsPublic);
- builder.setTitle(R.string.user_list);
- builder.setPositiveButton(android.R.string.ok, this);
- builder.setNegativeButton(android.R.string.cancel, this);
- return builder.create();
- }
+ @Override
+ public Dialog onCreateDialog(final Bundle savedInstanceState) {
+ mTwitterWrapper = getApplication().getTwitterWrapper();
+ final Bundle bundle = savedInstanceState == null ? getArguments() : savedInstanceState;
+ mAccountId = bundle != null ? bundle.getLong(EXTRA_ACCOUNT_ID, -1) : -1;
+ mListId = bundle != null ? bundle.getLong(EXTRA_LIST_ID, -1) : -1;
+ mName = bundle != null ? bundle.getString(EXTRA_LIST_NAME) : null;
+ mDescription = bundle != null ? bundle.getString(EXTRA_DESCRIPTION) : null;
+ mIsPublic = bundle != null ? bundle.getBoolean(EXTRA_IS_PUBLIC, true) : true;
+ final Context wrapped = ThemeUtils.getDialogThemedContext(getActivity());
+ final AlertDialog.Builder builder = new AlertDialog.Builder(wrapped);
+ final View view = LayoutInflater.from(wrapped).inflate(R.layout.edit_user_list_detail, null);
+ builder.setView(view);
+ mEditName = (EditText) view.findViewById(R.id.name);
+ mEditDescription = (EditText) view.findViewById(R.id.description);
+ mPublicCheckBox = (CheckBox) view.findViewById(R.id.is_public);
+ if (mName != null) {
+ mEditName.setText(mName);
+ }
+ if (mDescription != null) {
+ mEditDescription.setText(mDescription);
+ }
+ mPublicCheckBox.setChecked(mIsPublic);
+ builder.setTitle(R.string.user_list);
+ builder.setPositiveButton(android.R.string.ok, this);
+ builder.setNegativeButton(android.R.string.cancel, this);
+ return builder.create();
+ }
- @Override
- public void onSaveInstanceState(final Bundle outState) {
- outState.putLong(EXTRA_ACCOUNT_ID, mAccountId);
- outState.putLong(EXTRA_LIST_ID, mListId);
- outState.putString(EXTRA_LIST_NAME, mName);
- outState.putString(EXTRA_DESCRIPTION, mDescription);
- outState.putBoolean(EXTRA_IS_PUBLIC, mIsPublic);
- super.onSaveInstanceState(outState);
- }
+ @Override
+ public void onSaveInstanceState(final Bundle outState) {
+ outState.putLong(EXTRA_ACCOUNT_ID, mAccountId);
+ outState.putLong(EXTRA_LIST_ID, mListId);
+ outState.putString(EXTRA_LIST_NAME, mName);
+ outState.putString(EXTRA_DESCRIPTION, mDescription);
+ outState.putBoolean(EXTRA_IS_PUBLIC, mIsPublic);
+ super.onSaveInstanceState(outState);
+ }
- }
+ }
- class ListMembersAction extends ListAction {
+ class ListMembersAction extends ListAction {
- public ListMembersAction(final int order) {
- super(order);
- }
+ public ListMembersAction(final int order) {
+ super(order);
+ }
- @Override
- public String getName() {
- return getString(R.string.list_members);
- }
+ @Override
+ public String getName() {
+ return getString(R.string.list_members);
+ }
- @Override
- public String getSummary() {
- if (mUserList == null) return null;
- return getLocalizedNumber(mLocale, mUserList.members_count);
- }
+ @Override
+ public String getSummary() {
+ if (mUserList == null) return null;
+ return getLocalizedNumber(mLocale, mUserList.members_count);
+ }
- @Override
- public void onClick() {
- openUserListMembers(getActivity(), mUserList);
- }
+ @Override
+ public void onClick() {
+ openUserListMembers(getActivity(), mUserList);
+ }
- }
+ }
- class ListSubscribersAction extends ListAction {
+ class ListSubscribersAction extends ListAction {
- public ListSubscribersAction(final int order) {
- super(order);
- }
+ public ListSubscribersAction(final int order) {
+ super(order);
+ }
- @Override
- public String getName() {
- return getString(R.string.list_subscribers);
- }
+ @Override
+ public String getName() {
+ return getString(R.string.list_subscribers);
+ }
- @Override
- public String getSummary() {
- if (mUserList == null) return null;
- return getLocalizedNumber(mLocale, mUserList.subscribers_count);
- }
+ @Override
+ public String getSummary() {
+ if (mUserList == null) return null;
+ return getLocalizedNumber(mLocale, mUserList.subscribers_count);
+ }
- @Override
- public void onClick() {
- openUserListSubscribers(getActivity(), mUserList);
- }
+ @Override
+ public void onClick() {
+ openUserListSubscribers(getActivity(), mUserList);
+ }
- }
+ }
- class ListTimelineAction extends ListAction {
+ class ListTimelineAction extends ListAction {
- public ListTimelineAction(final int order) {
- super(order);
- }
+ public ListTimelineAction(final int order) {
+ super(order);
+ }
- @Override
- public String getName() {
- return getString(R.string.list_timeline);
- }
+ @Override
+ public String getName() {
+ return getString(R.string.list_timeline);
+ }
- @Override
- public void onClick() {
- if (mUserList == null) return;
- openUserListTimeline(getActivity(), mUserList);
- }
+ @Override
+ public void onClick() {
+ if (mUserList == null) return;
+ openUserListTimeline(getActivity(), mUserList);
+ }
- }
+ }
- static class ParcelableUserListLoader extends AsyncTaskLoader> {
+ static class ParcelableUserListLoader extends AsyncTaskLoader> {
- private final boolean mOmitIntentExtra;
- private final Bundle mExtras;
- private final long mAccountId, mUserId;
- private final int mListId;
- private final String mScreenName, mListName;
+ private final boolean mOmitIntentExtra;
+ private final Bundle mExtras;
+ private final long mAccountId, mUserId;
+ private final int mListId;
+ private final String mScreenName, mListName;
- private ParcelableUserListLoader(final Context context, final boolean omitIntentExtra, final Bundle extras,
- final long accountId, final int listId, final String listName, final long userId,
- final String screenName) {
- super(context);
- mOmitIntentExtra = omitIntentExtra;
- mExtras = extras;
- mAccountId = accountId;
- mUserId = userId;
- mListId = listId;
- mScreenName = screenName;
- mListName = listName;
- }
+ private ParcelableUserListLoader(final Context context, final boolean omitIntentExtra, final Bundle extras,
+ final long accountId, final int listId, final String listName, final long userId,
+ final String screenName) {
+ super(context);
+ mOmitIntentExtra = omitIntentExtra;
+ mExtras = extras;
+ mAccountId = accountId;
+ mUserId = userId;
+ mListId = listId;
+ mScreenName = screenName;
+ mListName = listName;
+ }
- @Override
- public SingleResponse loadInBackground() {
- if (!mOmitIntentExtra && mExtras != null) {
- final ParcelableUserList cache = mExtras.getParcelable(EXTRA_USER_LIST);
- if (cache != null) return SingleResponse.getInstance(cache);
- }
- final Twitter twitter = getTwitterInstance(getContext(), mAccountId, true);
- if (twitter == null) return SingleResponse.getInstance();
- try {
- final UserList list;
- if (mListId > 0) {
- list = twitter.showUserList(mListId);
- } else if (mUserId > 0) {
- list = twitter.showUserList(mListName, mUserId);
- } else if (mScreenName != null) {
- list = twitter.showUserList(mListName, mScreenName);
- } else
- return SingleResponse.getInstance();
- return new SingleResponse(new ParcelableUserList(list, mAccountId), null);
- } catch (final TwitterException e) {
- return new SingleResponse(null, e);
- }
- }
+ @Override
+ public SingleResponse loadInBackground() {
+ if (!mOmitIntentExtra && mExtras != null) {
+ final ParcelableUserList cache = mExtras.getParcelable(EXTRA_USER_LIST);
+ if (cache != null) return SingleResponse.getInstance(cache);
+ }
+ final Twitter twitter = getTwitterInstance(getContext(), mAccountId, true);
+ if (twitter == null) return SingleResponse.getInstance();
+ try {
+ final UserList list;
+ if (mListId > 0) {
+ list = twitter.showUserList(mListId);
+ } else if (mUserId > 0) {
+ list = twitter.showUserList(mListName, mUserId);
+ } else if (mScreenName != null) {
+ list = twitter.showUserList(mListName, mScreenName);
+ } else
+ return SingleResponse.getInstance();
+ return new SingleResponse(new ParcelableUserList(list, mAccountId), null);
+ } catch (final TwitterException e) {
+ return new SingleResponse(null, e);
+ }
+ }
- @Override
- public void onStartLoading() {
- forceLoad();
- }
+ @Override
+ public void onStartLoading() {
+ forceLoad();
+ }
- }
+ }
}
diff --git a/twidere/src/main/java/org/mariotaku/twidere/fragment/support/UserProfileFragment.java b/twidere/src/main/java/org/mariotaku/twidere/fragment/support/UserProfileFragment.java
index 8b374a99c..e93e0afb1 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/fragment/support/UserProfileFragment.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/fragment/support/UserProfileFragment.java
@@ -83,6 +83,7 @@ import org.mariotaku.twidere.provider.TweetStore.Accounts;
import org.mariotaku.twidere.provider.TweetStore.CachedUsers;
import org.mariotaku.twidere.provider.TweetStore.Filters;
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
+import org.mariotaku.twidere.util.ContentValuesCreator;
import org.mariotaku.twidere.util.FlymeUtils;
import org.mariotaku.twidere.util.ImageLoaderWrapper;
import org.mariotaku.twidere.util.ParseUtils;
@@ -92,6 +93,7 @@ import org.mariotaku.twidere.util.TwidereLinkify.OnLinkClickListener;
import org.mariotaku.twidere.view.ColorLabelLinearLayout;
import org.mariotaku.twidere.view.ExtendedFrameLayout;
import org.mariotaku.twidere.view.ProfileImageView;
+import org.mariotaku.twidere.view.TwidereMenuBar;
import org.mariotaku.twidere.view.iface.IExtendedView.OnSizeChangedListener;
import java.util.Locale;
@@ -101,7 +103,6 @@ import twitter4j.Twitter;
import twitter4j.TwitterException;
import static android.text.TextUtils.isEmpty;
-import static org.mariotaku.twidere.util.ContentValuesCreator.makeFilterdUserContentValues;
import static org.mariotaku.twidere.util.ParseUtils.parseLong;
import static org.mariotaku.twidere.util.UserColorNicknameUtils.clearUserColor;
import static org.mariotaku.twidere.util.UserColorNicknameUtils.clearUserNickname;
@@ -161,7 +162,7 @@ public class UserProfileFragment extends BaseSupportListFragment implements OnCl
private View mMainContent;
private View mProfileBannerSpace;
private ProgressBar mDetailsLoadProgress;
- private MenuBar mMenuBar;
+ private TwidereMenuBar mMenuBar;
private ListActionAdapter mAdapter;
@@ -720,7 +721,7 @@ public class UserProfileFragment extends BaseSupportListFragment implements OnCl
super.onViewCreated(view, savedInstanceState);
mMainContent = view.findViewById(R.id.content);
mDetailsLoadProgress = (ProgressBar) view.findViewById(R.id.details_load_progress);
- mMenuBar = (MenuBar) view.findViewById(R.id.menu_bar);
+ mMenuBar = (TwidereMenuBar) view.findViewById(R.id.menu_bar);
mErrorRetryContainer = view.findViewById(R.id.error_retry_container);
mRetryButton = (Button) view.findViewById(R.id.retry);
mErrorMessageView = (TextView) view.findViewById(R.id.error_message);
@@ -792,7 +793,7 @@ public class UserProfileFragment extends BaseSupportListFragment implements OnCl
case MENU_ADD_TO_FILTER: {
final ContentResolver resolver = getContentResolver();
resolver.delete(Filters.Users.CONTENT_URI, Where.equals(Filters.Users.USER_ID, user.id).getSQL(), null);
- resolver.insert(Filters.Users.CONTENT_URI, makeFilterdUserContentValues(user));
+ resolver.insert(Filters.Users.CONTENT_URI, ContentValuesCreator.makeFilteredUserContentValues(user));
showInfoMessage(getActivity(), R.string.message_user_muted, false);
break;
}
diff --git a/twidere/src/main/java/org/mariotaku/twidere/model/Account.java b/twidere/src/main/java/org/mariotaku/twidere/model/Account.java
index 404632d81..d411fe6b3 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/model/Account.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/model/Account.java
@@ -19,9 +19,6 @@
package org.mariotaku.twidere.model;
-import static org.mariotaku.twidere.util.Utils.isOfficialConsumerKeySecret;
-import static org.mariotaku.twidere.util.Utils.shouldForceUsingPrivateAPIs;
-
import android.content.Context;
import android.database.Cursor;
import android.graphics.Color;
@@ -38,263 +35,268 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import static org.mariotaku.twidere.util.Utils.isOfficialConsumerKeySecret;
+import static org.mariotaku.twidere.util.Utils.shouldForceUsingPrivateAPIs;
+
public class Account implements Parcelable {
- public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
+ public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
- @Override
- public Account createFromParcel(final Parcel in) {
- return new Account(in);
- }
+ @Override
+ public Account createFromParcel(final Parcel in) {
+ return new Account(in);
+ }
- @Override
- public Account[] newArray(final int size) {
- return new Account[size];
- }
- };
+ @Override
+ public Account[] newArray(final int size) {
+ return new Account[size];
+ }
+ };
- public final String screen_name, name, profile_image_url, profile_banner_url;
- public final long account_id;
- public final int color;
- public final boolean is_activated;
- public final boolean is_dummy;
+ public final String screen_name, name, profile_image_url, profile_banner_url;
+ public final long account_id;
+ public final int color;
+ public final boolean is_activated;
+ public final boolean is_dummy;
- public Account(final Cursor cursor, final Indices indices) {
- is_dummy = false;
- screen_name = indices.screen_name != -1 ? cursor.getString(indices.screen_name) : null;
- name = indices.name != -1 ? cursor.getString(indices.name) : null;
- account_id = indices.account_id != -1 ? cursor.getLong(indices.account_id) : -1;
- profile_image_url = indices.profile_image_url != -1 ? cursor.getString(indices.profile_image_url) : null;
- profile_banner_url = indices.profile_banner_url != -1 ? cursor.getString(indices.profile_banner_url) : null;
- color = indices.color != -1 ? cursor.getInt(indices.color) : Color.TRANSPARENT;
- is_activated = indices.is_activated != -1 ? cursor.getInt(indices.is_activated) == 1 : false;
- }
+ public Account(final Cursor cursor, final Indices indices) {
+ is_dummy = false;
+ screen_name = indices.screen_name != -1 ? cursor.getString(indices.screen_name) : null;
+ name = indices.name != -1 ? cursor.getString(indices.name) : null;
+ account_id = indices.account_id != -1 ? cursor.getLong(indices.account_id) : -1;
+ profile_image_url = indices.profile_image_url != -1 ? cursor.getString(indices.profile_image_url) : null;
+ profile_banner_url = indices.profile_banner_url != -1 ? cursor.getString(indices.profile_banner_url) : null;
+ color = indices.color != -1 ? cursor.getInt(indices.color) : Color.TRANSPARENT;
+ is_activated = indices.is_activated != -1 ? cursor.getInt(indices.is_activated) == 1 : false;
+ }
- public Account(final Parcel source) {
- is_dummy = source.readInt() == 1;
- is_activated = source.readInt() == 1;
- account_id = source.readLong();
- name = source.readString();
- screen_name = source.readString();
- profile_image_url = source.readString();
- profile_banner_url = source.readString();
- color = source.readInt();
- }
+ public Account(final Parcel source) {
+ is_dummy = source.readInt() == 1;
+ is_activated = source.readInt() == 1;
+ account_id = source.readLong();
+ name = source.readString();
+ screen_name = source.readString();
+ profile_image_url = source.readString();
+ profile_banner_url = source.readString();
+ color = source.readInt();
+ }
- private Account() {
- is_dummy = true;
- screen_name = null;
- name = null;
- account_id = -1;
- profile_image_url = null;
- profile_banner_url = null;
- color = 0;
- is_activated = false;
- }
+ private Account() {
+ is_dummy = true;
+ screen_name = null;
+ name = null;
+ account_id = -1;
+ profile_image_url = null;
+ profile_banner_url = null;
+ color = 0;
+ is_activated = false;
+ }
- @Override
- public int describeContents() {
- return 0;
- }
+ @Override
+ public int describeContents() {
+ return 0;
+ }
- @Override
- public String toString() {
- return "Account{screen_name=" + screen_name + ", name=" + name + ", profile_image_url=" + profile_image_url
- + ", profile_banner_url=" + profile_banner_url + ", account_id=" + account_id + ", color=" + color
- + ", is_activated=" + is_activated + ", is_dummy=" + is_dummy + "}";
- }
+ @Override
+ public String toString() {
+ return "Account{screen_name=" + screen_name + ", name=" + name + ", profile_image_url=" + profile_image_url
+ + ", profile_banner_url=" + profile_banner_url + ", account_id=" + account_id + ", color=" + color
+ + ", is_activated=" + is_activated + ", is_dummy=" + is_dummy + "}";
+ }
- @Override
- public void writeToParcel(final Parcel out, final int flags) {
- out.writeInt(is_dummy ? 1 : 0);
- out.writeInt(is_activated ? 1 : 0);
- out.writeLong(account_id);
- out.writeString(name);
- out.writeString(screen_name);
- out.writeString(profile_image_url);
- out.writeString(profile_banner_url);
- out.writeInt(color);
- }
+ @Override
+ public void writeToParcel(final Parcel out, final int flags) {
+ out.writeInt(is_dummy ? 1 : 0);
+ out.writeInt(is_activated ? 1 : 0);
+ out.writeLong(account_id);
+ out.writeString(name);
+ out.writeString(screen_name);
+ out.writeString(profile_image_url);
+ out.writeString(profile_banner_url);
+ out.writeInt(color);
+ }
- public static Account dummyInstance() {
- return new Account();
- }
+ public static Account dummyInstance() {
+ return new Account();
+ }
- public static Account getAccount(final Context context, final long account_id) {
- if (context == null) return null;
- final Cursor cur = ContentResolverUtils.query(context.getContentResolver(), Accounts.CONTENT_URI,
- Accounts.COLUMNS, Accounts.ACCOUNT_ID + " = " + account_id, null, null);
- if (cur != null) {
- try {
- if (cur.getCount() > 0 && cur.moveToFirst()) {
- final Indices indices = new Indices(cur);
- cur.moveToFirst();
- return new Account(cur, indices);
- }
- } finally {
- cur.close();
- }
- }
- return null;
- }
+ public static Account getAccount(final Context context, final long account_id) {
+ if (context == null) return null;
+ final Cursor cur = ContentResolverUtils.query(context.getContentResolver(), Accounts.CONTENT_URI,
+ Accounts.COLUMNS, Accounts.ACCOUNT_ID + " = " + account_id, null, null);
+ if (cur != null) {
+ try {
+ if (cur.getCount() > 0 && cur.moveToFirst()) {
+ final Indices indices = new Indices(cur);
+ cur.moveToFirst();
+ return new Account(cur, indices);
+ }
+ } finally {
+ cur.close();
+ }
+ }
+ return null;
+ }
- public static long[] getAccountIds(final Account[] accounts) {
- final long[] ids = new long[accounts.length];
- for (int i = 0, j = accounts.length; i < j; i++) {
- ids[i] = accounts[i].account_id;
- }
- return ids;
- }
+ public static long[] getAccountIds(final Account[] accounts) {
+ final long[] ids = new long[accounts.length];
+ for (int i = 0, j = accounts.length; i < j; i++) {
+ ids[i] = accounts[i].account_id;
+ }
+ return ids;
+ }
- public static Account[] getAccounts(final Context context, final boolean activatedOnly,
- final boolean officialKeyOnly) {
- final List list = getAccountsList(context, activatedOnly, officialKeyOnly);
- return list.toArray(new Account[list.size()]);
- }
+ public static Account[] getAccounts(final Context context, final boolean activatedOnly,
+ final boolean officialKeyOnly) {
+ final List list = getAccountsList(context, activatedOnly, officialKeyOnly);
+ return list.toArray(new Account[list.size()]);
+ }
- public static Account[] getAccounts(final Context context, final long[] accountIds) {
- if (context == null) return new Account[0];
- final String where = accountIds != null ? Where.in(new Column(Accounts.ACCOUNT_ID),
- new RawItemArray(accountIds)).getSQL() : null;
- final Cursor cur = ContentResolverUtils.query(context.getContentResolver(), Accounts.CONTENT_URI,
- Accounts.COLUMNS_NO_CREDENTIALS, where, null, null);
- if (cur == null) return new Account[0];
- try {
- final Indices idx = new Indices(cur);
- cur.moveToFirst();
- final Account[] names = new Account[cur.getCount()];
- while (!cur.isAfterLast()) {
- names[cur.getPosition()] = new Account(cur, idx);
- cur.moveToNext();
- }
- return names;
- } finally {
- cur.close();
- }
- }
+ public static Account[] getAccounts(final Context context, final long[] accountIds) {
+ if (context == null) return new Account[0];
+ final String where = accountIds != null ? Where.in(new Column(Accounts.ACCOUNT_ID),
+ new RawItemArray(accountIds)).getSQL() : null;
+ final Cursor cur = ContentResolverUtils.query(context.getContentResolver(), Accounts.CONTENT_URI,
+ Accounts.COLUMNS_NO_CREDENTIALS, where, null, null);
+ if (cur == null) return new Account[0];
+ try {
+ final Indices idx = new Indices(cur);
+ cur.moveToFirst();
+ final Account[] names = new Account[cur.getCount()];
+ while (!cur.isAfterLast()) {
+ names[cur.getPosition()] = new Account(cur, idx);
+ cur.moveToNext();
+ }
+ return names;
+ } finally {
+ cur.close();
+ }
+ }
- public static List getAccountsList(final Context context, final boolean activatedOnly) {
- return getAccountsList(context, activatedOnly, false);
- }
+ public static List getAccountsList(final Context context, final boolean activatedOnly) {
+ return getAccountsList(context, activatedOnly, false);
+ }
- public static List getAccountsList(final Context context, final boolean activatedOnly,
- final boolean officialKeyOnly) {
- if (context == null) return Collections.emptyList();
- final ArrayList accounts = new ArrayList();
- final Cursor cur = ContentResolverUtils.query(context.getContentResolver(), Accounts.CONTENT_URI,
- Accounts.COLUMNS_NO_CREDENTIALS, activatedOnly ? Accounts.IS_ACTIVATED + " = 1" : null, null, null);
- if (cur != null) {
- final Indices indices = new Indices(cur);
- cur.moveToFirst();
- while (!cur.isAfterLast()) {
- if (!officialKeyOnly) {
- accounts.add(new Account(cur, indices));
- } else {
- final String consumerKey = cur.getString(indices.consumer_key);
- final String consumerSecret = cur.getString(indices.consumer_secret);
- if (shouldForceUsingPrivateAPIs(context)
- || isOfficialConsumerKeySecret(context, consumerKey, consumerSecret)) {
- accounts.add(new Account(cur, indices));
- }
- }
- cur.moveToNext();
- }
- cur.close();
- }
- return accounts;
- }
+ public static List getAccountsList(final Context context, final boolean activatedOnly,
+ final boolean officialKeyOnly) {
+ if (context == null) return Collections.emptyList();
+ final ArrayList accounts = new ArrayList();
+ final Cursor cur = ContentResolverUtils.query(context.getContentResolver(), Accounts.CONTENT_URI,
+ Accounts.COLUMNS_NO_CREDENTIALS, activatedOnly ? Accounts.IS_ACTIVATED + " = 1" : null, null, null);
+ if (cur != null) {
+ final Indices indices = new Indices(cur);
+ cur.moveToFirst();
+ while (!cur.isAfterLast()) {
+ if (!officialKeyOnly) {
+ accounts.add(new Account(cur, indices));
+ } else {
+ final String consumerKey = cur.getString(indices.consumer_key);
+ final String consumerSecret = cur.getString(indices.consumer_secret);
+ if (shouldForceUsingPrivateAPIs(context)
+ || isOfficialConsumerKeySecret(context, consumerKey, consumerSecret)) {
+ accounts.add(new Account(cur, indices));
+ }
+ }
+ cur.moveToNext();
+ }
+ cur.close();
+ }
+ return accounts;
+ }
- public static AccountWithCredentials getAccountWithCredentials(final Context context, final long account_id) {
- if (context == null) return null;
- final Cursor cur = ContentResolverUtils.query(context.getContentResolver(), Accounts.CONTENT_URI,
- Accounts.COLUMNS, Accounts.ACCOUNT_ID + " = " + account_id, null, null);
- if (cur != null) {
- try {
- if (cur.getCount() > 0 && cur.moveToFirst()) {
- final Indices indices = new Indices(cur);
- cur.moveToFirst();
- return new AccountWithCredentials(cur, indices);
- }
- } finally {
- cur.close();
- }
- }
- return null;
- }
+ public static AccountWithCredentials getAccountWithCredentials(final Context context, final long account_id) {
+ if (context == null) return null;
+ final Cursor cur = ContentResolverUtils.query(context.getContentResolver(), Accounts.CONTENT_URI,
+ Accounts.COLUMNS, Accounts.ACCOUNT_ID + " = " + account_id, null, null);
+ if (cur != null) {
+ try {
+ if (cur.getCount() > 0 && cur.moveToFirst()) {
+ final Indices indices = new Indices(cur);
+ cur.moveToFirst();
+ return new AccountWithCredentials(cur, indices);
+ }
+ } finally {
+ cur.close();
+ }
+ }
+ return null;
+ }
- public static class AccountWithCredentials extends Account {
+ public static class AccountWithCredentials extends Account {
- public final int auth_type;
- public final String consumer_key, consumer_secret;
- public final String basic_auth_username, basic_auth_password;
- public final String oauth_token, oauth_token_secret;
- public final String api_url_format;
- public final boolean same_oauth_signing_url;
+ public final int auth_type;
+ public final String consumer_key, consumer_secret;
+ public final String basic_auth_username, basic_auth_password;
+ public final String oauth_token, oauth_token_secret;
+ public final String api_url_format;
+ public final boolean same_oauth_signing_url, no_version_suffix;
- public AccountWithCredentials(final Cursor cursor, final Indices indices) {
- super(cursor, indices);
- auth_type = cursor.getInt(indices.auth_type);
- consumer_key = cursor.getString(indices.consumer_key);
- consumer_secret = cursor.getString(indices.consumer_secret);
- basic_auth_username = cursor.getString(indices.basic_auth_username);
- basic_auth_password = cursor.getString(indices.basic_auth_password);
- oauth_token = cursor.getString(indices.oauth_token);
- oauth_token_secret = cursor.getString(indices.oauth_token_secret);
- api_url_format = cursor.getString(indices.api_url_format);
- same_oauth_signing_url = cursor.getInt(indices.same_oauth_signing_url) == 1;
- }
+ public AccountWithCredentials(final Cursor cursor, final Indices indices) {
+ super(cursor, indices);
+ auth_type = cursor.getInt(indices.auth_type);
+ consumer_key = cursor.getString(indices.consumer_key);
+ consumer_secret = cursor.getString(indices.consumer_secret);
+ basic_auth_username = cursor.getString(indices.basic_auth_username);
+ basic_auth_password = cursor.getString(indices.basic_auth_password);
+ oauth_token = cursor.getString(indices.oauth_token);
+ oauth_token_secret = cursor.getString(indices.oauth_token_secret);
+ api_url_format = cursor.getString(indices.api_url_format);
+ same_oauth_signing_url = cursor.getInt(indices.same_oauth_signing_url) == 1;
+ no_version_suffix = cursor.getInt(indices.no_version_suffix) == 1;
+ }
- @Override
- public String toString() {
- return "AccountWithCredentials{auth_type=" + auth_type + ", consumer_key=" + consumer_key
- + ", consumer_secret=" + consumer_secret + ", basic_auth_password=" + basic_auth_password
- + ", oauth_token=" + oauth_token + ", oauth_token_secret=" + oauth_token_secret
- + ", api_url_format=" + api_url_format + ", same_oauth_signing_url=" + same_oauth_signing_url + "}";
- }
+ @Override
+ public String toString() {
+ return "AccountWithCredentials{auth_type=" + auth_type + ", consumer_key=" + consumer_key
+ + ", consumer_secret=" + consumer_secret + ", basic_auth_password=" + basic_auth_password
+ + ", oauth_token=" + oauth_token + ", oauth_token_secret=" + oauth_token_secret
+ + ", api_url_format=" + api_url_format + ", same_oauth_signing_url=" + same_oauth_signing_url + "}";
+ }
- public static final boolean isOfficialCredentials(final Context context, final AccountWithCredentials account) {
- if (account == null) return false;
- final boolean isOAuth = account.auth_type == Accounts.AUTH_TYPE_OAUTH
- || account.auth_type == Accounts.AUTH_TYPE_XAUTH;
- final String consumerKey = account.consumer_key, consumerSecret = account.consumer_secret;
- return isOAuth && isOfficialConsumerKeySecret(context, consumerKey, consumerSecret);
- }
- }
+ public static final boolean isOfficialCredentials(final Context context, final AccountWithCredentials account) {
+ if (account == null) return false;
+ final boolean isOAuth = account.auth_type == Accounts.AUTH_TYPE_OAUTH
+ || account.auth_type == Accounts.AUTH_TYPE_XAUTH;
+ final String consumerKey = account.consumer_key, consumerSecret = account.consumer_secret;
+ return isOAuth && isOfficialConsumerKeySecret(context, consumerKey, consumerSecret);
+ }
+ }
- public static final class Indices {
+ public static final class Indices {
- public final int screen_name, name, account_id, profile_image_url, profile_banner_url, color, is_activated,
- auth_type, consumer_key, consumer_secret, basic_auth_username, basic_auth_password, oauth_token,
- oauth_token_secret, api_url_format, same_oauth_signing_url;
+ public final int screen_name, name, account_id, profile_image_url, profile_banner_url, color, is_activated,
+ auth_type, consumer_key, consumer_secret, basic_auth_username, basic_auth_password, oauth_token,
+ oauth_token_secret, api_url_format, same_oauth_signing_url, no_version_suffix;
- public Indices(final Cursor cursor) {
- screen_name = cursor.getColumnIndex(Accounts.SCREEN_NAME);
- name = cursor.getColumnIndex(Accounts.NAME);
- account_id = cursor.getColumnIndex(Accounts.ACCOUNT_ID);
- profile_image_url = cursor.getColumnIndex(Accounts.PROFILE_IMAGE_URL);
- profile_banner_url = cursor.getColumnIndex(Accounts.PROFILE_BANNER_URL);
- color = cursor.getColumnIndex(Accounts.COLOR);
- is_activated = cursor.getColumnIndex(Accounts.IS_ACTIVATED);
- auth_type = cursor.getColumnIndex(Accounts.AUTH_TYPE);
- consumer_key = cursor.getColumnIndex(Accounts.CONSUMER_KEY);
- consumer_secret = cursor.getColumnIndex(Accounts.CONSUMER_SECRET);
- basic_auth_username = cursor.getColumnIndex(Accounts.BASIC_AUTH_USERNAME);
- basic_auth_password = cursor.getColumnIndex(Accounts.BASIC_AUTH_PASSWORD);
- oauth_token = cursor.getColumnIndex(Accounts.OAUTH_TOKEN);
- oauth_token_secret = cursor.getColumnIndex(Accounts.OAUTH_TOKEN_SECRET);
- api_url_format = cursor.getColumnIndex(Accounts.API_URL_FORMAT);
- same_oauth_signing_url = cursor.getColumnIndex(Accounts.SAME_OAUTH_SIGNING_URL);
- }
+ public Indices(final Cursor cursor) {
+ screen_name = cursor.getColumnIndex(Accounts.SCREEN_NAME);
+ name = cursor.getColumnIndex(Accounts.NAME);
+ account_id = cursor.getColumnIndex(Accounts.ACCOUNT_ID);
+ profile_image_url = cursor.getColumnIndex(Accounts.PROFILE_IMAGE_URL);
+ profile_banner_url = cursor.getColumnIndex(Accounts.PROFILE_BANNER_URL);
+ color = cursor.getColumnIndex(Accounts.COLOR);
+ is_activated = cursor.getColumnIndex(Accounts.IS_ACTIVATED);
+ auth_type = cursor.getColumnIndex(Accounts.AUTH_TYPE);
+ consumer_key = cursor.getColumnIndex(Accounts.CONSUMER_KEY);
+ consumer_secret = cursor.getColumnIndex(Accounts.CONSUMER_SECRET);
+ basic_auth_username = cursor.getColumnIndex(Accounts.BASIC_AUTH_USERNAME);
+ basic_auth_password = cursor.getColumnIndex(Accounts.BASIC_AUTH_PASSWORD);
+ oauth_token = cursor.getColumnIndex(Accounts.OAUTH_TOKEN);
+ oauth_token_secret = cursor.getColumnIndex(Accounts.OAUTH_TOKEN_SECRET);
+ api_url_format = cursor.getColumnIndex(Accounts.API_URL_FORMAT);
+ same_oauth_signing_url = cursor.getColumnIndex(Accounts.SAME_OAUTH_SIGNING_URL);
+ no_version_suffix = cursor.getColumnIndex(Accounts.NO_VERSION_SUFFIX);
+ }
- @Override
- public String toString() {
- return "Indices{screen_name=" + screen_name + ", name=" + name + ", account_id=" + account_id
- + ", profile_image_url=" + profile_image_url + ", profile_banner_url=" + profile_banner_url
- + ", color=" + color + ", is_activated=" + is_activated + ", auth_type=" + auth_type
- + ", consumer_key=" + consumer_key + ", consumer_secret=" + consumer_secret
- + ", basic_auth_password=" + basic_auth_password + ", oauth_token=" + oauth_token
- + ", oauth_token_secret=" + oauth_token_secret + ", api_url_format=" + api_url_format
- + ", same_oauth_signing_url=" + same_oauth_signing_url + "}";
- }
- }
+ @Override
+ public String toString() {
+ return "Indices{screen_name=" + screen_name + ", name=" + name + ", account_id=" + account_id
+ + ", profile_image_url=" + profile_image_url + ", profile_banner_url=" + profile_banner_url
+ + ", color=" + color + ", is_activated=" + is_activated + ", auth_type=" + auth_type
+ + ", consumer_key=" + consumer_key + ", consumer_secret=" + consumer_secret
+ + ", basic_auth_password=" + basic_auth_password + ", oauth_token=" + oauth_token
+ + ", oauth_token_secret=" + oauth_token_secret + ", api_url_format=" + api_url_format
+ + ", same_oauth_signing_url=" + same_oauth_signing_url + "}";
+ }
+ }
}
diff --git a/twidere/src/main/java/org/mariotaku/twidere/provider/TweetStore.java b/twidere/src/main/java/org/mariotaku/twidere/provider/TweetStore.java
index b01c152b9..cc192d5dd 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/provider/TweetStore.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/provider/TweetStore.java
@@ -25,760 +25,761 @@ import android.provider.BaseColumns;
public interface TweetStore {
- public static final String AUTHORITY = "twidere";
-
- public static final String TYPE_PRIMARY_KEY = "INTEGER PRIMARY KEY AUTOINCREMENT";
- public static final String TYPE_INT = "INTEGER";
- public static final String TYPE_INT_UNIQUE = "INTEGER UNIQUE";
- public static final String TYPE_BOOLEAN = "INTEGER(1)";
- public static final String TYPE_BOOLEAN_DEFAULT_TRUE = "INTEGER(1) DEFAULT 1";
- public static final String TYPE_TEXT = "TEXT";
- public static final String TYPE_TEXT_NOT_NULL = "TEXT NOT NULL";
- public static final String TYPE_TEXT_NOT_NULL_UNIQUE = "TEXT NOT NULL UNIQUE";
+ public static final String AUTHORITY = "twidere";
+
+ public static final String TYPE_PRIMARY_KEY = "INTEGER PRIMARY KEY AUTOINCREMENT";
+ public static final String TYPE_INT = "INTEGER";
+ public static final String TYPE_INT_UNIQUE = "INTEGER UNIQUE";
+ public static final String TYPE_BOOLEAN = "INTEGER(1)";
+ public static final String TYPE_BOOLEAN_DEFAULT_TRUE = "INTEGER(1) DEFAULT 1";
+ public static final String TYPE_TEXT = "TEXT";
+ public static final String TYPE_TEXT_NOT_NULL = "TEXT NOT NULL";
+ public static final String TYPE_TEXT_NOT_NULL_UNIQUE = "TEXT NOT NULL UNIQUE";
+
+ public static final String CONTENT_PATH_NULL = "null_content";
+
+ public static final String CONTENT_PATH_DATABASE_READY = "database_ready";
+
+ public static final Uri BASE_CONTENT_URI = new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(AUTHORITY).build();
+
+ public static final Uri CONTENT_URI_NULL = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH_NULL);
+
+ public static final Uri CONTENT_URI_DATABASE_READY = Uri.withAppendedPath(BASE_CONTENT_URI,
+ CONTENT_PATH_DATABASE_READY);
- public static final String CONTENT_PATH_NULL = "null_content";
-
- public static final String CONTENT_PATH_DATABASE_READY = "database_ready";
-
- public static final Uri BASE_CONTENT_URI = new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT)
- .authority(AUTHORITY).build();
-
- public static final Uri CONTENT_URI_NULL = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH_NULL);
-
- public static final Uri CONTENT_URI_DATABASE_READY = Uri.withAppendedPath(BASE_CONTENT_URI,
- CONTENT_PATH_DATABASE_READY);
+ public static final Uri[] STATUSES_URIS = new Uri[]{Statuses.CONTENT_URI, Mentions.CONTENT_URI,
+ CachedStatuses.CONTENT_URI};
+ public static final Uri[] CACHE_URIS = new Uri[]{CachedUsers.CONTENT_URI, CachedStatuses.CONTENT_URI,
+ CachedHashtags.CONTENT_URI, CachedTrends.Local.CONTENT_URI};
+ public static final Uri[] DIRECT_MESSAGES_URIS = new Uri[]{DirectMessages.Inbox.CONTENT_URI,
+ DirectMessages.Outbox.CONTENT_URI};
- public static final Uri[] STATUSES_URIS = new Uri[] { Statuses.CONTENT_URI, Mentions.CONTENT_URI,
- CachedStatuses.CONTENT_URI };
- public static final Uri[] CACHE_URIS = new Uri[] { CachedUsers.CONTENT_URI, CachedStatuses.CONTENT_URI,
- CachedHashtags.CONTENT_URI, CachedTrends.Local.CONTENT_URI };
- public static final Uri[] DIRECT_MESSAGES_URIS = new Uri[] { DirectMessages.Inbox.CONTENT_URI,
- DirectMessages.Outbox.CONTENT_URI };
+ public static interface Accounts extends BaseColumns {
- public static interface Accounts extends BaseColumns {
+ public static final int AUTH_TYPE_OAUTH = 0;
+ public static final int AUTH_TYPE_XAUTH = 1;
+ public static final int AUTH_TYPE_BASIC = 2;
+ public static final int AUTH_TYPE_TWIP_O_MODE = 3;
- public static final int AUTH_TYPE_OAUTH = 0;
- public static final int AUTH_TYPE_XAUTH = 1;
- public static final int AUTH_TYPE_BASIC = 2;
- public static final int AUTH_TYPE_TWIP_O_MODE = 3;
+ public static final String TABLE_NAME = "accounts";
+ public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- public static final String TABLE_NAME = "accounts";
- public static final String CONTENT_PATH = TABLE_NAME;
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ /**
+ * Login name of the account
+ * Type: TEXT NOT NULL
+ */
+ public static final String SCREEN_NAME = "screen_name";
- /**
- * Login name of the account
- * Type: TEXT NOT NULL
- */
- public static final String SCREEN_NAME = "screen_name";
+ public static final String NAME = "name";
- public static final String NAME = "name";
+ /**
+ * Unique ID of the account
+ * Type: INTEGER (long)
+ */
+ public static final String ACCOUNT_ID = "account_id";
- /**
- * Unique ID of the account
- * Type: INTEGER (long)
- */
- public static final String ACCOUNT_ID = "account_id";
+ /**
+ * Auth type of the account. Type: INTEGER
+ */
+ public static final String AUTH_TYPE = "auth_type";
- /**
- * Auth type of the account. Type: INTEGER
- */
- public static final String AUTH_TYPE = "auth_type";
+ /**
+ * Password of the account. (It will not stored)
+ * Type: TEXT
+ */
+ public static final String PASSWORD = "password";
- /**
- * Password of the account. (It will not stored)
- * Type: TEXT
- */
- public static final String PASSWORD = "password";
+ public static final String BASIC_AUTH_USERNAME = "basic_auth_username";
- public static final String BASIC_AUTH_USERNAME = "basic_auth_username";
+ /**
+ * Password of the account for basic auth.
+ * Type: TEXT
+ */
+ public static final String BASIC_AUTH_PASSWORD = "basic_auth_password";
- /**
- * Password of the account for basic auth.
- * Type: TEXT
- */
- public static final String BASIC_AUTH_PASSWORD = "basic_auth_password";
+ /**
+ * OAuth Token of the account.
+ * Type: TEXT
+ */
+ public static final String OAUTH_TOKEN = "oauth_token";
- /**
- * OAuth Token of the account.
- * Type: TEXT
- */
- public static final String OAUTH_TOKEN = "oauth_token";
+ /**
+ * Token Secret of the account.
+ * Type: TEXT
+ */
+ public static final String OAUTH_TOKEN_SECRET = "oauth_token_secret";
- /**
- * Token Secret of the account.
- * Type: TEXT
- */
- public static final String OAUTH_TOKEN_SECRET = "oauth_token_secret";
+ public static final String COLOR = "color";
- public static final String COLOR = "color";
+ /**
+ * Set to a non-zero integer if the account is activated.
+ * Type: INTEGER (boolean)
+ */
+ public static final String IS_ACTIVATED = "is_activated";
- /**
- * Set to a non-zero integer if the account is activated.
- * Type: INTEGER (boolean)
- */
- public static final String IS_ACTIVATED = "is_activated";
+ public static final String CONSUMER_KEY = "consumer_key";
- public static final String CONSUMER_KEY = "consumer_key";
+ public static final String CONSUMER_SECRET = "consumer_secret";
- public static final String CONSUMER_SECRET = "consumer_secret";
+ /**
+ * User's profile image URL of the status.
+ * Type: TEXT
+ */
+ public static final String PROFILE_IMAGE_URL = "profile_image_url";
- /**
- * User's profile image URL of the status.
- * Type: TEXT
- */
- public static final String PROFILE_IMAGE_URL = "profile_image_url";
+ public static final String PROFILE_BANNER_URL = "profile_banner_url";
+ public static final String API_URL_FORMAT = "api_url_format";
+ public static final String SAME_OAUTH_SIGNING_URL = "same_oauth_signing_url";
+ public static final String NO_VERSION_SUFFIX = "no_version_suffix";
- public static final String PROFILE_BANNER_URL = "profile_banner_url";
- public static final String API_URL_FORMAT = "api_url_format";
- public static final String SAME_OAUTH_SIGNING_URL = "same_oauth_signing_url";
+ public static final String[] COLUMNS_NO_CREDENTIALS = new String[]{_ID, NAME, SCREEN_NAME, ACCOUNT_ID,
+ PROFILE_IMAGE_URL, PROFILE_BANNER_URL, COLOR, IS_ACTIVATED};
- public static final String[] COLUMNS_NO_CREDENTIALS = new String[] { _ID, NAME, SCREEN_NAME, ACCOUNT_ID,
- PROFILE_IMAGE_URL, PROFILE_BANNER_URL, COLOR, IS_ACTIVATED };
+ public static final String[] COLUMNS = new String[]{_ID, NAME, SCREEN_NAME, ACCOUNT_ID, AUTH_TYPE,
+ BASIC_AUTH_USERNAME, BASIC_AUTH_PASSWORD, OAUTH_TOKEN, OAUTH_TOKEN_SECRET, CONSUMER_KEY,
+ CONSUMER_SECRET, API_URL_FORMAT, SAME_OAUTH_SIGNING_URL, NO_VERSION_SUFFIX, PROFILE_IMAGE_URL, PROFILE_BANNER_URL, COLOR,
+ IS_ACTIVATED};
- public static final String[] COLUMNS = new String[] { _ID, NAME, SCREEN_NAME, ACCOUNT_ID, AUTH_TYPE,
- BASIC_AUTH_USERNAME, BASIC_AUTH_PASSWORD, OAUTH_TOKEN, OAUTH_TOKEN_SECRET, CONSUMER_KEY,
- CONSUMER_SECRET, API_URL_FORMAT, SAME_OAUTH_SIGNING_URL, PROFILE_IMAGE_URL, PROFILE_BANNER_URL, COLOR,
- IS_ACTIVATED };
+ public static final String[] TYPES = new String[]{TYPE_PRIMARY_KEY, TYPE_TEXT_NOT_NULL, TYPE_TEXT_NOT_NULL,
+ TYPE_INT_UNIQUE, TYPE_INT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT,
+ TYPE_BOOLEAN, TYPE_BOOLEAN, TYPE_TEXT, TYPE_TEXT, TYPE_INT, TYPE_BOOLEAN};
- public static final String[] TYPES = new String[] { TYPE_PRIMARY_KEY, TYPE_TEXT_NOT_NULL, TYPE_TEXT_NOT_NULL,
- TYPE_INT_UNIQUE, TYPE_INT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT,
- TYPE_BOOLEAN, TYPE_TEXT, TYPE_TEXT, TYPE_INT, TYPE_BOOLEAN };
+ }
- }
+ public static interface CachedHashtags extends CachedValues {
- public static interface CachedHashtags extends CachedValues {
+ public static final String[] COLUMNS = new String[]{_ID, NAME};
+ public static final String[] TYPES = new String[]{TYPE_PRIMARY_KEY, TYPE_TEXT};
- public static final String[] COLUMNS = new String[] { _ID, NAME };
- public static final String[] TYPES = new String[] { TYPE_PRIMARY_KEY, TYPE_TEXT };
+ public static final String TABLE_NAME = "cached_hashtags";
+ public static final String CONTENT_PATH = TABLE_NAME;
- public static final String TABLE_NAME = "cached_hashtags";
- public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ }
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- }
+ public static interface CachedImages extends BaseColumns {
+ public static final String TABLE_NAME = "cached_images";
+ public static final String CONTENT_PATH = TABLE_NAME;
- public static interface CachedImages extends BaseColumns {
- public static final String TABLE_NAME = "cached_images";
- public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ public static final String URL = "url";
- public static final String URL = "url";
+ public static final String PATH = "path";
- public static final String PATH = "path";
+ public static final String[] MATRIX_COLUMNS = new String[]{URL, PATH};
- public static final String[] MATRIX_COLUMNS = new String[] { URL, PATH };
+ public static final String[] COLUMNS = new String[]{_ID, URL, PATH};
+ }
- public static final String[] COLUMNS = new String[] { _ID, URL, PATH };
- }
+ public static interface CachedStatuses extends Statuses {
+ public static final String TABLE_NAME = "cached_statuses";
+ public static final String CONTENT_PATH = TABLE_NAME;
- public static interface CachedStatuses extends Statuses {
- public static final String TABLE_NAME = "cached_statuses";
- public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ }
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- }
+ public static interface CachedTrends extends CachedValues {
- public static interface CachedTrends extends CachedValues {
+ public static final String TIMESTAMP = "timestamp";
- public static final String TIMESTAMP = "timestamp";
+ public static final String[] COLUMNS = new String[]{_ID, NAME, TIMESTAMP};
+ public static final String[] TYPES = new String[]{TYPE_PRIMARY_KEY, TYPE_TEXT, TYPE_INT};
- public static final String[] COLUMNS = new String[] { _ID, NAME, TIMESTAMP };
- public static final String[] TYPES = new String[] { TYPE_PRIMARY_KEY, TYPE_TEXT, TYPE_INT };
+ public static interface Local extends CachedTrends {
+ public static final String TABLE_NAME = "local_trends";
+ public static final String CONTENT_PATH = TABLE_NAME;
- public static interface Local extends CachedTrends {
- public static final String TABLE_NAME = "local_trends";
- public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ }
- }
+ }
- }
+ public static interface CachedUsers extends CachedValues {
- public static interface CachedUsers extends CachedValues {
+ public static final String TABLE_NAME = "cached_users";
+ public static final String CONTENT_PATH = TABLE_NAME;
- public static final String TABLE_NAME = "cached_users";
- public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ public static final String USER_ID = "user_id";
- public static final String USER_ID = "user_id";
+ public static final String CREATED_AT = "created_at";
- public static final String CREATED_AT = "created_at";
+ public static final String IS_PROTECTED = "is_protected";
- public static final String IS_PROTECTED = "is_protected";
+ public static final String IS_VERIFIED = "is_verified";
- public static final String IS_VERIFIED = "is_verified";
+ public static final String IS_FOLLOWING = "is_following";
- public static final String IS_FOLLOWING = "is_following";
+ public static final String DESCRIPTION_PLAIN = "description_plain";
- public static final String DESCRIPTION_PLAIN = "description_plain";
+ public static final String DESCRIPTION_HTML = "description_html";
- public static final String DESCRIPTION_HTML = "description_html";
+ public static final String DESCRIPTION_EXPANDED = "description_expanded";
- public static final String DESCRIPTION_EXPANDED = "description_expanded";
+ public static final String LOCATION = "location";
- public static final String LOCATION = "location";
+ public static final String URL = "url";
- public static final String URL = "url";
+ public static final String URL_EXPANDED = "url_expanded";
- public static final String URL_EXPANDED = "url_expanded";
+ public static final String PROFILE_BANNER_URL = "profile_banner_url";
- public static final String PROFILE_BANNER_URL = "profile_banner_url";
+ public static final String FOLLOWERS_COUNT = "followers_count";
- public static final String FOLLOWERS_COUNT = "followers_count";
+ public static final String FRIENDS_COUNT = "friends_count";
- public static final String FRIENDS_COUNT = "friends_count";
+ public static final String STATUSES_COUNT = "statuses_count";
- public static final String STATUSES_COUNT = "statuses_count";
+ public static final String FAVORITES_COUNT = "favorites_count";
- public static final String FAVORITES_COUNT = "favorites_count";
+ /**
+ * User's screen name of the status.
+ * Type: TEXT
+ */
+ public static final String SCREEN_NAME = "screen_name";
- /**
- * User's screen name of the status.
- * Type: TEXT
- */
- public static final String SCREEN_NAME = "screen_name";
+ /**
+ * User's profile image URL of the status.
+ * Type: TEXT NOT NULL
+ */
+ public static final String PROFILE_IMAGE_URL = "profile_image_url";
- /**
- * User's profile image URL of the status.
- * Type: TEXT NOT NULL
- */
- public static final String PROFILE_IMAGE_URL = "profile_image_url";
+ public static final String[] COLUMNS = new String[]{_ID, USER_ID, CREATED_AT, NAME, SCREEN_NAME,
+ DESCRIPTION_PLAIN, LOCATION, URL, PROFILE_IMAGE_URL, PROFILE_BANNER_URL, IS_PROTECTED, IS_VERIFIED,
+ IS_FOLLOWING, FOLLOWERS_COUNT, FRIENDS_COUNT, STATUSES_COUNT, FAVORITES_COUNT, DESCRIPTION_HTML,
+ DESCRIPTION_EXPANDED, URL_EXPANDED};
- public static final String[] COLUMNS = new String[] { _ID, USER_ID, CREATED_AT, NAME, SCREEN_NAME,
- DESCRIPTION_PLAIN, LOCATION, URL, PROFILE_IMAGE_URL, PROFILE_BANNER_URL, IS_PROTECTED, IS_VERIFIED,
- IS_FOLLOWING, FOLLOWERS_COUNT, FRIENDS_COUNT, STATUSES_COUNT, FAVORITES_COUNT, DESCRIPTION_HTML,
- DESCRIPTION_EXPANDED, URL_EXPANDED };
+ public static final String[] TYPES = new String[]{TYPE_PRIMARY_KEY, TYPE_INT_UNIQUE, TYPE_INT, TYPE_TEXT,
+ TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_BOOLEAN, TYPE_BOOLEAN,
+ TYPE_BOOLEAN, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT};
- public static final String[] TYPES = new String[] { TYPE_PRIMARY_KEY, TYPE_INT_UNIQUE, TYPE_INT, TYPE_TEXT,
- TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_BOOLEAN, TYPE_BOOLEAN,
- TYPE_BOOLEAN, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT };
+ }
- }
+ public static interface CachedValues extends BaseColumns {
- public static interface CachedValues extends BaseColumns {
+ public static final String NAME = "name";
+ }
- public static final String NAME = "name";
- }
+ public static interface CacheFiles extends BaseColumns {
+ public static final String TABLE_NAME = "cache_files";
+ public static final String CONTENT_PATH = TABLE_NAME;
- public static interface CacheFiles extends BaseColumns {
- public static final String TABLE_NAME = "cache_files";
- public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ public static final String NAME = "name";
- public static final String NAME = "name";
+ public static final String PATH = "path";
- public static final String PATH = "path";
+ public static final String[] MATRIX_COLUMNS = new String[]{NAME, PATH};
- public static final String[] MATRIX_COLUMNS = new String[] { NAME, PATH };
+ public static final String[] COLUMNS = new String[]{_ID, NAME, PATH};
+ }
- public static final String[] COLUMNS = new String[] { _ID, NAME, PATH };
- }
+ public static interface DirectMessages extends BaseColumns {
- public static interface DirectMessages extends BaseColumns {
+ public static final String TABLE_NAME = "messages";
+ public static final String CONTENT_PATH = TABLE_NAME;
- public static final String TABLE_NAME = "messages";
- public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ public static final String ACCOUNT_ID = "account_id";
+ public static final String MESSAGE_ID = "message_id";
+ public static final String MESSAGE_TIMESTAMP = "message_timestamp";
+ public static final String SENDER_ID = "sender_id";
+ public static final String RECIPIENT_ID = "recipient_id";
- public static final String ACCOUNT_ID = "account_id";
- public static final String MESSAGE_ID = "message_id";
- public static final String MESSAGE_TIMESTAMP = "message_timestamp";
- public static final String SENDER_ID = "sender_id";
- public static final String RECIPIENT_ID = "recipient_id";
+ public static final String IS_OUTGOING = "is_outgoing";
- public static final String IS_OUTGOING = "is_outgoing";
+ public static final String TEXT_HTML = "text_html";
+ public static final String TEXT_PLAIN = "text_plain";
+ public static final String TEXT_UNESCAPED = "text_unescaped";
+ public static final String SENDER_NAME = "sender_name";
+ public static final String RECIPIENT_NAME = "recipient_name";
+ public static final String SENDER_SCREEN_NAME = "sender_screen_name";
+ public static final String RECIPIENT_SCREEN_NAME = "recipient_screen_name";
+ public static final String SENDER_PROFILE_IMAGE_URL = "sender_profile_image_url";
+ public static final String RECIPIENT_PROFILE_IMAGE_URL = "recipient_profile_image_url";
- public static final String TEXT_HTML = "text_html";
- public static final String TEXT_PLAIN = "text_plain";
- public static final String TEXT_UNESCAPED = "text_unescaped";
- public static final String SENDER_NAME = "sender_name";
- public static final String RECIPIENT_NAME = "recipient_name";
- public static final String SENDER_SCREEN_NAME = "sender_screen_name";
- public static final String RECIPIENT_SCREEN_NAME = "recipient_screen_name";
- public static final String SENDER_PROFILE_IMAGE_URL = "sender_profile_image_url";
- public static final String RECIPIENT_PROFILE_IMAGE_URL = "recipient_profile_image_url";
+ public static final String MEDIAS = "medias";
- public static final String MEDIAS = "medias";
+ public static final String FIRST_MEDIA = "first_media";
- public static final String FIRST_MEDIA = "first_media";
+ public static final String[] COLUMNS = new String[]{_ID, ACCOUNT_ID, MESSAGE_ID, MESSAGE_TIMESTAMP,
+ SENDER_ID, RECIPIENT_ID, IS_OUTGOING, TEXT_HTML, TEXT_PLAIN, TEXT_UNESCAPED, SENDER_NAME,
+ RECIPIENT_NAME, SENDER_SCREEN_NAME, RECIPIENT_SCREEN_NAME, SENDER_PROFILE_IMAGE_URL,
+ RECIPIENT_PROFILE_IMAGE_URL, MEDIAS, FIRST_MEDIA};
+ public static final String[] TYPES = new String[]{TYPE_PRIMARY_KEY, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT,
+ TYPE_INT, TYPE_BOOLEAN, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT,
+ TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT};
- public static final String[] COLUMNS = new String[] { _ID, ACCOUNT_ID, MESSAGE_ID, MESSAGE_TIMESTAMP,
- SENDER_ID, RECIPIENT_ID, IS_OUTGOING, TEXT_HTML, TEXT_PLAIN, TEXT_UNESCAPED, SENDER_NAME,
- RECIPIENT_NAME, SENDER_SCREEN_NAME, RECIPIENT_SCREEN_NAME, SENDER_PROFILE_IMAGE_URL,
- RECIPIENT_PROFILE_IMAGE_URL, MEDIAS, FIRST_MEDIA };
- public static final String[] TYPES = new String[] { TYPE_PRIMARY_KEY, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT,
- TYPE_INT, TYPE_BOOLEAN, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT,
- TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT };
+ public static final String DEFAULT_SORT_ORDER = MESSAGE_ID + " DESC";
- public static final String DEFAULT_SORT_ORDER = MESSAGE_ID + " DESC";
+ public static interface Conversation extends DirectMessages {
- public static interface Conversation extends DirectMessages {
+ public static final String DEFAULT_SORT_ORDER = MESSAGE_TIMESTAMP + " ASC";
- public static final String DEFAULT_SORT_ORDER = MESSAGE_TIMESTAMP + " ASC";
+ public static final String CONTENT_PATH_SEGMENT = "conversation";
+ public static final String CONTENT_PATH_SEGMENT_SCREEN_NAME = "conversation_screen_name";
- public static final String CONTENT_PATH_SEGMENT = "conversation";
- public static final String CONTENT_PATH_SEGMENT_SCREEN_NAME = "conversation_screen_name";
+ public static final String CONTENT_PATH = DirectMessages.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
+ public static final String CONTENT_PATH_SCREEN_NAME = DirectMessages.CONTENT_PATH + "/"
+ + CONTENT_PATH_SEGMENT_SCREEN_NAME;
- public static final String CONTENT_PATH = DirectMessages.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
- public static final String CONTENT_PATH_SCREEN_NAME = DirectMessages.CONTENT_PATH + "/"
- + CONTENT_PATH_SEGMENT_SCREEN_NAME;
+ public static final Uri CONTENT_URI = Uri
+ .withAppendedPath(DirectMessages.CONTENT_URI, CONTENT_PATH_SEGMENT);
- public static final Uri CONTENT_URI = Uri
- .withAppendedPath(DirectMessages.CONTENT_URI, CONTENT_PATH_SEGMENT);
+ public static final Uri CONTENT_URI_SCREEN_NAME = Uri.withAppendedPath(DirectMessages.CONTENT_URI,
+ CONTENT_PATH_SEGMENT_SCREEN_NAME);
+ }
- public static final Uri CONTENT_URI_SCREEN_NAME = Uri.withAppendedPath(DirectMessages.CONTENT_URI,
- CONTENT_PATH_SEGMENT_SCREEN_NAME);
- }
+ public static interface ConversationEntries extends BaseColumns {
- public static interface ConversationEntries extends BaseColumns {
+ public static final String TABLE_NAME = "messages_conversation_entries";
- public static final String TABLE_NAME = "messages_conversation_entries";
+ public static final String CONTENT_PATH_SEGMENT = "conversation_entries";
+ public static final String CONTENT_PATH = DirectMessages.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
- public static final String CONTENT_PATH_SEGMENT = "conversation_entries";
- public static final String CONTENT_PATH = DirectMessages.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
+ public static final Uri CONTENT_URI = Uri
+ .withAppendedPath(DirectMessages.CONTENT_URI, CONTENT_PATH_SEGMENT);
- public static final Uri CONTENT_URI = Uri
- .withAppendedPath(DirectMessages.CONTENT_URI, CONTENT_PATH_SEGMENT);
+ public static final String MESSAGE_TIMESTAMP = "message_timestamp";
+ public static final String NAME = "name";
+ public static final String SCREEN_NAME = "screen_name";
+ public static final String PROFILE_IMAGE_URL = "profile_image_url";
+ public static final String TEXT_HTML = "text_html";
+ public static final String CONVERSATION_ID = "conversation_id";
- public static final String MESSAGE_TIMESTAMP = "message_timestamp";
- public static final String NAME = "name";
- public static final String SCREEN_NAME = "screen_name";
- public static final String PROFILE_IMAGE_URL = "profile_image_url";
- public static final String TEXT_HTML = "text_html";
- public static final String CONVERSATION_ID = "conversation_id";
+ public static final int IDX__ID = 0;
+ public static final int IDX_MESSAGE_TIMESTAMP = 1;
+ public static final int IDX_MESSAGE_ID = 2;
+ public static final int IDX_ACCOUNT_ID = 3;
+ public static final int IDX_IS_OUTGOING = 4;
+ public static final int IDX_NAME = 5;
+ public static final int IDX_SCREEN_NAME = 6;
+ public static final int IDX_PROFILE_IMAGE_URL = 7;
+ public static final int IDX_TEXT = 8;
+ public static final int IDX_CONVERSATION_ID = 9;
+ }
- public static final int IDX__ID = 0;
- public static final int IDX_MESSAGE_TIMESTAMP = 1;
- public static final int IDX_MESSAGE_ID = 2;
- public static final int IDX_ACCOUNT_ID = 3;
- public static final int IDX_IS_OUTGOING = 4;
- public static final int IDX_NAME = 5;
- public static final int IDX_SCREEN_NAME = 6;
- public static final int IDX_PROFILE_IMAGE_URL = 7;
- public static final int IDX_TEXT = 8;
- public static final int IDX_CONVERSATION_ID = 9;
- }
+ public static interface Inbox extends DirectMessages {
- public static interface Inbox extends DirectMessages {
+ public static final String TABLE_NAME = "messages_inbox";
- public static final String TABLE_NAME = "messages_inbox";
+ public static final String CONTENT_PATH_SEGMENT = "inbox";
+ public static final String CONTENT_PATH = DirectMessages.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
- public static final String CONTENT_PATH_SEGMENT = "inbox";
- public static final String CONTENT_PATH = DirectMessages.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
+ public static final Uri CONTENT_URI = Uri
+ .withAppendedPath(DirectMessages.CONTENT_URI, CONTENT_PATH_SEGMENT);
- public static final Uri CONTENT_URI = Uri
- .withAppendedPath(DirectMessages.CONTENT_URI, CONTENT_PATH_SEGMENT);
+ }
- }
+ public static interface Outbox extends DirectMessages {
- public static interface Outbox extends DirectMessages {
+ public static final String TABLE_NAME = "messages_outbox";
- public static final String TABLE_NAME = "messages_outbox";
+ public static final String CONTENT_PATH_SEGMENT = "outbox";
+ public static final String CONTENT_PATH = DirectMessages.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
- public static final String CONTENT_PATH_SEGMENT = "outbox";
- public static final String CONTENT_PATH = DirectMessages.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
+ public static final Uri CONTENT_URI = Uri
+ .withAppendedPath(DirectMessages.CONTENT_URI, CONTENT_PATH_SEGMENT);
- public static final Uri CONTENT_URI = Uri
- .withAppendedPath(DirectMessages.CONTENT_URI, CONTENT_PATH_SEGMENT);
+ }
- }
+ }
- }
+ public static interface DNS extends BaseColumns {
+ public static final String TABLE_NAME = "dns";
+ public static final String CONTENT_PATH = TABLE_NAME;
- public static interface DNS extends BaseColumns {
- public static final String TABLE_NAME = "dns";
- public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ public static final String HOST = "host";
- public static final String HOST = "host";
+ public static final String ADDRESS = "address";
- public static final String ADDRESS = "address";
+ public static final String[] MATRIX_COLUMNS = new String[]{HOST, ADDRESS};
- public static final String[] MATRIX_COLUMNS = new String[] { HOST, ADDRESS };
+ public static final String[] COLUMNS = new String[]{_ID, HOST, ADDRESS};
+ }
- public static final String[] COLUMNS = new String[] { _ID, HOST, ADDRESS };
- }
+ public static interface Drafts extends BaseColumns {
- public static interface Drafts extends BaseColumns {
+ public static final int ACTION_UPDATE_STATUS = 1;
+ public static final int ACTION_SEND_DIRECT_MESSAGE = 2;
+ public static final int ACTION_CREATE_FRIENDSHIP = 3;
- public static final int ACTION_UPDATE_STATUS = 1;
- public static final int ACTION_SEND_DIRECT_MESSAGE = 2;
- public static final int ACTION_CREATE_FRIENDSHIP = 3;
+ public static final String TABLE_NAME = "drafts";
+ public static final String CONTENT_PATH = TABLE_NAME;
- public static final String TABLE_NAME = "drafts";
- public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ /**
+ * Status content.
+ * Type: TEXT
+ */
+ public static final String TEXT = "text";
- /**
- * Status content.
- * Type: TEXT
- */
- public static final String TEXT = "text";
+ /**
+ * Account IDs of unsent status.
+ * Type: TEXT
+ */
+ public static final String ACCOUNT_IDS = "account_ids";
- /**
- * Account IDs of unsent status.
- * Type: TEXT
- */
- public static final String ACCOUNT_IDS = "account_ids";
+ public static final String LOCATION = "location";
- public static final String LOCATION = "location";
+ public static final String IN_REPLY_TO_STATUS_ID = "in_reply_to_status_id";
- public static final String IN_REPLY_TO_STATUS_ID = "in_reply_to_status_id";
+ public static final String MEDIAS = "medias";
- public static final String MEDIAS = "medias";
+ public static final String IS_POSSIBLY_SENSITIVE = "is_possibly_sensitive";
- public static final String IS_POSSIBLY_SENSITIVE = "is_possibly_sensitive";
+ public static final String TIMESTAMP = "timestamp";
- public static final String TIMESTAMP = "timestamp";
+ public static final String ACTION_TYPE = "action_type";
- public static final String ACTION_TYPE = "action_type";
+ public static final String ACTION_EXTRAS = "action_extras";
- public static final String ACTION_EXTRAS = "action_extras";
+ public static final String[] COLUMNS = new String[]{_ID, TEXT, ACCOUNT_IDS, LOCATION, MEDIAS,
+ IN_REPLY_TO_STATUS_ID, IS_POSSIBLY_SENSITIVE, TIMESTAMP, ACTION_TYPE, ACTION_EXTRAS};
- public static final String[] COLUMNS = new String[] { _ID, TEXT, ACCOUNT_IDS, LOCATION, MEDIAS,
- IN_REPLY_TO_STATUS_ID, IS_POSSIBLY_SENSITIVE, TIMESTAMP, ACTION_TYPE, ACTION_EXTRAS };
+ public static final String[] TYPES = new String[]{TYPE_PRIMARY_KEY, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT,
+ TYPE_INT, TYPE_INT, TYPE_BOOLEAN, TYPE_INT, TYPE_INT, TYPE_TEXT};
- public static final String[] TYPES = new String[] { TYPE_PRIMARY_KEY, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT,
- TYPE_INT, TYPE_INT, TYPE_BOOLEAN, TYPE_INT, TYPE_INT, TYPE_TEXT };
+ }
- }
+ public static interface Filters extends BaseColumns {
- public static interface Filters extends BaseColumns {
+ public static final String CONTENT_PATH = "filters";
- public static final String CONTENT_PATH = "filters";
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ public static final String VALUE = "value";
- public static final String VALUE = "value";
+ public static final String ENABLE_IN_HOME_TIMELINE = "enable_in_home_timeline";
- public static final String ENABLE_IN_HOME_TIMELINE = "enable_in_home_timeline";
+ public static final String ENABLE_IN_MENTIONS = "enable_in_mentions";
- public static final String ENABLE_IN_MENTIONS = "enable_in_mentions";
+ public static final String ENABLE_FOR_RETWEETS = "enable_for_retweets";
- public static final String ENABLE_FOR_RETWEETS = "enable_for_retweets";
+ public static final String[] COLUMNS = new String[]{_ID, VALUE};
- public static final String[] COLUMNS = new String[] { _ID, VALUE };
+ public static final String[] TYPES = new String[]{TYPE_PRIMARY_KEY, TYPE_TEXT_NOT_NULL_UNIQUE};
- public static final String[] TYPES = new String[] { TYPE_PRIMARY_KEY, TYPE_TEXT_NOT_NULL_UNIQUE };
+ public static interface Keywords extends Filters {
- public static interface Keywords extends Filters {
+ public static final String TABLE_NAME = "filtered_keywords";
+ public static final String CONTENT_PATH_SEGMENT = "keywords";
+ public static final String CONTENT_PATH = Filters.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(Filters.CONTENT_URI, CONTENT_PATH_SEGMENT);
+ }
- public static final String TABLE_NAME = "filtered_keywords";
- public static final String CONTENT_PATH_SEGMENT = "keywords";
- public static final String CONTENT_PATH = Filters.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
- public static final Uri CONTENT_URI = Uri.withAppendedPath(Filters.CONTENT_URI, CONTENT_PATH_SEGMENT);
- }
+ public static interface Links extends Filters {
- public static interface Links extends Filters {
+ public static final String TABLE_NAME = "filtered_links";
+ public static final String CONTENT_PATH_SEGMENT = "links";
+ public static final String CONTENT_PATH = Filters.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(Filters.CONTENT_URI, CONTENT_PATH_SEGMENT);
+ }
- public static final String TABLE_NAME = "filtered_links";
- public static final String CONTENT_PATH_SEGMENT = "links";
- public static final String CONTENT_PATH = Filters.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
- public static final Uri CONTENT_URI = Uri.withAppendedPath(Filters.CONTENT_URI, CONTENT_PATH_SEGMENT);
- }
+ public static interface Sources extends Filters {
- public static interface Sources extends Filters {
+ public static final String TABLE_NAME = "filtered_sources";
+ public static final String CONTENT_PATH_SEGMENT = "sources";
+ public static final String CONTENT_PATH = Filters.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(Filters.CONTENT_URI, CONTENT_PATH_SEGMENT);
+ }
- public static final String TABLE_NAME = "filtered_sources";
- public static final String CONTENT_PATH_SEGMENT = "sources";
- public static final String CONTENT_PATH = Filters.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
- public static final Uri CONTENT_URI = Uri.withAppendedPath(Filters.CONTENT_URI, CONTENT_PATH_SEGMENT);
- }
+ public static interface Users extends BaseColumns {
- public static interface Users extends BaseColumns {
+ public static final String TABLE_NAME = "filtered_users";
+ public static final String CONTENT_PATH_SEGMENT = "users";
+ public static final String CONTENT_PATH = Filters.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(Filters.CONTENT_URI, CONTENT_PATH_SEGMENT);
- public static final String TABLE_NAME = "filtered_users";
- public static final String CONTENT_PATH_SEGMENT = "users";
- public static final String CONTENT_PATH = Filters.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
- public static final Uri CONTENT_URI = Uri.withAppendedPath(Filters.CONTENT_URI, CONTENT_PATH_SEGMENT);
+ public static final String USER_ID = "user_id";
+ public static final String NAME = "name";
+ public static final String SCREEN_NAME = "screen_name";
- public static final String USER_ID = "user_id";
- public static final String NAME = "name";
- public static final String SCREEN_NAME = "screen_name";
+ public static final String[] COLUMNS = new String[]{_ID, USER_ID, NAME, SCREEN_NAME};
- public static final String[] COLUMNS = new String[] { _ID, USER_ID, NAME, SCREEN_NAME };
+ public static final String[] TYPES = new String[]{TYPE_PRIMARY_KEY, TYPE_INT_UNIQUE, TYPE_TEXT_NOT_NULL,
+ TYPE_TEXT_NOT_NULL};
+ }
+ }
- public static final String[] TYPES = new String[] { TYPE_PRIMARY_KEY, TYPE_INT_UNIQUE, TYPE_TEXT_NOT_NULL,
- TYPE_TEXT_NOT_NULL };
- }
- }
+ public static interface Mentions extends Statuses {
- public static interface Mentions extends Statuses {
+ public static final String TABLE_NAME = "mentions";
+ public static final String CONTENT_PATH = TABLE_NAME;
- public static final String TABLE_NAME = "mentions";
- public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ }
- }
+ public static interface Notifications extends BaseColumns {
- public static interface Notifications extends BaseColumns {
+ public static final String TABLE_NAME = "notifications";
- public static final String TABLE_NAME = "notifications";
+ public static final String CONTENT_PATH = TABLE_NAME;
- public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ public static final String ID = "id";
- public static final String ID = "id";
+ public static final String COUNT = "count";
- public static final String COUNT = "count";
+ public static final String[] MATRIX_COLUMNS = new String[]{ID, COUNT};
- public static final String[] MATRIX_COLUMNS = new String[] { ID, COUNT };
+ public static final String[] COLUMNS = new String[]{_ID, ID, COUNT};
+ }
- public static final String[] COLUMNS = new String[] { _ID, ID, COUNT };
- }
+ public static interface Permissions extends BaseColumns {
+ public static final String TABLE_NAME = "permissions";
+ public static final String CONTENT_PATH = TABLE_NAME;
- public static interface Permissions extends BaseColumns {
- public static final String TABLE_NAME = "permissions";
- public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ public static final String PERMISSION = "permissions";
- public static final String PERMISSION = "permissions";
+ public static final String PACKAGE_NAME = "package_name";
- public static final String PACKAGE_NAME = "package_name";
+ public static final String[] MATRIX_COLUMNS = new String[]{PACKAGE_NAME, PERMISSION};
- public static final String[] MATRIX_COLUMNS = new String[] { PACKAGE_NAME, PERMISSION };
+ public static final String[] COLUMNS = new String[]{_ID, PACKAGE_NAME, PERMISSION};
+ }
- public static final String[] COLUMNS = new String[] { _ID, PACKAGE_NAME, PERMISSION };
- }
+ public static interface Preferences extends BaseColumns {
+ public static final String TABLE_NAME = "preferences";
+ public static final String CONTENT_PATH = TABLE_NAME;
- public static interface Preferences extends BaseColumns {
- public static final String TABLE_NAME = "preferences";
- public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ public static final int TYPE_INVALID = -1;
- public static final int TYPE_INVALID = -1;
+ public static final int TYPE_NULL = 0;
- public static final int TYPE_NULL = 0;
+ public static final int TYPE_BOOLEAN = 1;
- public static final int TYPE_BOOLEAN = 1;
+ public static final int TYPE_INTEGER = 2;
- public static final int TYPE_INTEGER = 2;
+ public static final int TYPE_LONG = 3;
- public static final int TYPE_LONG = 3;
+ public static final int TYPE_FLOAT = 4;
- public static final int TYPE_FLOAT = 4;
+ public static final int TYPE_STRING = 5;
- public static final int TYPE_STRING = 5;
+ public static final String KEY = "key";
- public static final String KEY = "key";
+ public static final String VALUE = "value";
- public static final String VALUE = "value";
+ public static final String TYPE = "type";
- public static final String TYPE = "type";
+ public static final String[] MATRIX_COLUMNS = new String[]{KEY, VALUE, TYPE};
- public static final String[] MATRIX_COLUMNS = new String[] { KEY, VALUE, TYPE };
+ public static final String[] COLUMNS = new String[]{_ID, KEY, VALUE, TYPE};
+ }
- public static final String[] COLUMNS = new String[] { _ID, KEY, VALUE, TYPE };
- }
+ public static interface Statuses extends BaseColumns {
- public static interface Statuses extends BaseColumns {
+ public static final String TABLE_NAME = "statuses";
+ public static final String CONTENT_PATH = TABLE_NAME;
- public static final String TABLE_NAME = "statuses";
- public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ /**
+ * Account ID of the status.
+ * Type: TEXT
+ */
+ public static final String ACCOUNT_ID = "account_id";
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- /**
- * Account ID of the status.
- * Type: TEXT
- */
- public static final String ACCOUNT_ID = "account_id";
+ /**
+ * Status content, in HTML. Please note, this is not actually original
+ * text.
+ * Type: TEXT
+ */
+ public static final String TEXT_HTML = "text_html";
- /**
- * Status content, in HTML. Please note, this is not actually original
- * text.
- * Type: TEXT
- */
- public static final String TEXT_HTML = "text_html";
+ /**
+ *
+ */
+ public static final String TEXT_PLAIN = "text_plain";
- /**
- *
- */
- public static final String TEXT_PLAIN = "text_plain";
+ public static final String TEXT_UNESCAPED = "text_unescaped";
- public static final String TEXT_UNESCAPED = "text_unescaped";
+ /**
+ * User name of the status.
+ * Type: TEXT
+ */
+ public static final String USER_NAME = "name";
- /**
- * User name of the status.
- * Type: TEXT
- */
- public static final String USER_NAME = "name";
+ /**
+ * User's screen name of the status.
+ * Type: TEXT
+ */
+ public static final String USER_SCREEN_NAME = "screen_name";
- /**
- * User's screen name of the status.
- * Type: TEXT
- */
- public static final String USER_SCREEN_NAME = "screen_name";
+ /**
+ * User's profile image URL of the status.
+ * Type: TEXT NOT NULL
+ */
+ public static final String USER_PROFILE_IMAGE_URL = "profile_image_url";
- /**
- * User's profile image URL of the status.
- * Type: TEXT NOT NULL
- */
- public static final String USER_PROFILE_IMAGE_URL = "profile_image_url";
+ /**
+ * Unique id of the status.
+ * Type: INTEGER UNIQUE(long)
+ */
+ public static final String STATUS_ID = "status_id";
- /**
- * Unique id of the status.
- * Type: INTEGER UNIQUE(long)
- */
- public static final String STATUS_ID = "status_id";
+ /**
+ * Retweet count of the status.
+ * Type: INTEGER (long)
+ */
+ public static final String RETWEET_COUNT = "retweet_count";
+ public static final String FAVORITE_COUNT = "favorite_count";
- /**
- * Retweet count of the status.
- * Type: INTEGER (long)
- */
- public static final String RETWEET_COUNT = "retweet_count";
- public static final String FAVORITE_COUNT = "favorite_count";
+ /**
+ * Set to an non-zero integer if the status is a retweet, set to
+ * negative value if the status is retweeted by user.
+ * Type: INTEGER
+ */
+ public static final String IS_RETWEET = "is_retweet";
- /**
- * Set to an non-zero integer if the status is a retweet, set to
- * negative value if the status is retweeted by user.
- * Type: INTEGER
- */
- public static final String IS_RETWEET = "is_retweet";
+ /**
+ * Set to 1 if the status is a favorite.
+ * Type: INTEGER (boolean)
+ */
+ public static final String IS_FAVORITE = "is_favorite";
- /**
- * Set to 1 if the status is a favorite.
- * Type: INTEGER (boolean)
- */
- public static final String IS_FAVORITE = "is_favorite";
+ public static final String IS_POSSIBLY_SENSITIVE = "is_possibly_sensitive";
- public static final String IS_POSSIBLY_SENSITIVE = "is_possibly_sensitive";
+ /**
+ * Set to 1 if the status is a gap.
+ * Type: INTEGER (boolean)
+ */
+ public static final String IS_GAP = "is_gap";
- /**
- * Set to 1 if the status is a gap.
- * Type: INTEGER (boolean)
- */
- public static final String IS_GAP = "is_gap";
+ public static final String LOCATION = "location";
- public static final String LOCATION = "location";
+ /**
+ * User's ID of the status.
+ * Type: INTEGER (long)
+ */
+ public static final String USER_ID = "user_id";
- /**
- * User's ID of the status.
- * Type: INTEGER (long)
- */
- public static final String USER_ID = "user_id";
+ public static final String IN_REPLY_TO_STATUS_ID = "in_reply_to_status_id";
- public static final String IN_REPLY_TO_STATUS_ID = "in_reply_to_status_id";
+ public static final String IN_REPLY_TO_USER_ID = "in_reply_to_user_id";
- public static final String IN_REPLY_TO_USER_ID = "in_reply_to_user_id";
+ public static final String IN_REPLY_TO_USER_NAME = "in_reply_to_user_name";
- public static final String IN_REPLY_TO_USER_NAME = "in_reply_to_user_name";
+ public static final String IN_REPLY_TO_USER_SCREEN_NAME = "in_reply_to_user_screen_name";
- public static final String IN_REPLY_TO_USER_SCREEN_NAME = "in_reply_to_user_screen_name";
+ public static final String SOURCE = "source";
- public static final String SOURCE = "source";
+ public static final String IS_PROTECTED = "is_protected";
- public static final String IS_PROTECTED = "is_protected";
+ public static final String IS_VERIFIED = "is_verified";
- public static final String IS_VERIFIED = "is_verified";
+ public static final String IS_FOLLOWING = "is_following";
- public static final String IS_FOLLOWING = "is_following";
+ public static final String RETWEET_ID = "retweet_id";
- public static final String RETWEET_ID = "retweet_id";
+ public static final String RETWEET_TIMESTAMP = "retweet_timestamp";
- public static final String RETWEET_TIMESTAMP = "retweet_timestamp";
+ public static final String RETWEETED_BY_USER_ID = "retweeted_by_user_id";
- public static final String RETWEETED_BY_USER_ID = "retweeted_by_user_id";
+ public static final String RETWEETED_BY_USER_NAME = "retweeted_by_user_name";
- public static final String RETWEETED_BY_USER_NAME = "retweeted_by_user_name";
+ public static final String RETWEETED_BY_USER_SCREEN_NAME = "retweeted_by_user_screen_name";
- public static final String RETWEETED_BY_USER_SCREEN_NAME = "retweeted_by_user_screen_name";
+ /**
+ * Timestamp of the status.
+ * Type: INTEGER (long)
+ */
+ public static final String STATUS_TIMESTAMP = "status_timestamp";
- /**
- * Timestamp of the status.
- * Type: INTEGER (long)
- */
- public static final String STATUS_TIMESTAMP = "status_timestamp";
+ public static final String MY_RETWEET_ID = "my_retweet_id";
- public static final String MY_RETWEET_ID = "my_retweet_id";
+ public static final String MEDIAS = "medias";
- public static final String MEDIAS = "medias";
+ public static final String FIRST_MEDIA = "first_media";
- public static final String FIRST_MEDIA = "first_media";
+ public static final String MENTIONS = "mentions";
- public static final String MENTIONS = "mentions";
+ public static final String SORT_ORDER_TIMESTAMP_DESC = STATUS_TIMESTAMP + " DESC";
- public static final String SORT_ORDER_TIMESTAMP_DESC = STATUS_TIMESTAMP + " DESC";
+ public static final String SORT_ORDER_STATUS_ID_DESC = STATUS_ID + " DESC";
- public static final String SORT_ORDER_STATUS_ID_DESC = STATUS_ID + " DESC";
+ public static final String DEFAULT_SORT_ORDER = SORT_ORDER_TIMESTAMP_DESC;
- public static final String DEFAULT_SORT_ORDER = SORT_ORDER_TIMESTAMP_DESC;
+ public static final String[] COLUMNS = new String[]{_ID, ACCOUNT_ID, STATUS_ID, USER_ID, STATUS_TIMESTAMP,
+ TEXT_HTML, TEXT_PLAIN, TEXT_UNESCAPED, USER_NAME, USER_SCREEN_NAME, USER_PROFILE_IMAGE_URL,
+ IN_REPLY_TO_STATUS_ID, IN_REPLY_TO_USER_ID, IN_REPLY_TO_USER_NAME, IN_REPLY_TO_USER_SCREEN_NAME,
+ SOURCE, LOCATION, RETWEET_COUNT, FAVORITE_COUNT, RETWEET_ID, RETWEET_TIMESTAMP, RETWEETED_BY_USER_ID,
+ RETWEETED_BY_USER_NAME, RETWEETED_BY_USER_SCREEN_NAME, MY_RETWEET_ID, IS_RETWEET, IS_FAVORITE,
+ IS_PROTECTED, IS_VERIFIED, IS_FOLLOWING, IS_GAP, IS_POSSIBLY_SENSITIVE, MEDIAS, FIRST_MEDIA, MENTIONS};
- public static final String[] COLUMNS = new String[] { _ID, ACCOUNT_ID, STATUS_ID, USER_ID, STATUS_TIMESTAMP,
- TEXT_HTML, TEXT_PLAIN, TEXT_UNESCAPED, USER_NAME, USER_SCREEN_NAME, USER_PROFILE_IMAGE_URL,
- IN_REPLY_TO_STATUS_ID, IN_REPLY_TO_USER_ID, IN_REPLY_TO_USER_NAME, IN_REPLY_TO_USER_SCREEN_NAME,
- SOURCE, LOCATION, RETWEET_COUNT, FAVORITE_COUNT, RETWEET_ID, RETWEET_TIMESTAMP, RETWEETED_BY_USER_ID,
- RETWEETED_BY_USER_NAME, RETWEETED_BY_USER_SCREEN_NAME, MY_RETWEET_ID, IS_RETWEET, IS_FAVORITE,
- IS_PROTECTED, IS_VERIFIED, IS_FOLLOWING, IS_GAP, IS_POSSIBLY_SENSITIVE, MEDIAS, FIRST_MEDIA, MENTIONS };
+ public static final String[] TYPES = new String[]{TYPE_PRIMARY_KEY, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT,
+ TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_INT, TYPE_INT, TYPE_INT,
+ TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_TEXT,
+ TYPE_TEXT, TYPE_INT, TYPE_BOOLEAN, TYPE_BOOLEAN, TYPE_BOOLEAN, TYPE_BOOLEAN, TYPE_BOOLEAN,
+ TYPE_BOOLEAN, TYPE_BOOLEAN, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT};
- public static final String[] TYPES = new String[] { TYPE_PRIMARY_KEY, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT,
- TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_INT, TYPE_INT, TYPE_INT,
- TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_TEXT,
- TYPE_TEXT, TYPE_INT, TYPE_BOOLEAN, TYPE_BOOLEAN, TYPE_BOOLEAN, TYPE_BOOLEAN, TYPE_BOOLEAN,
- TYPE_BOOLEAN, TYPE_BOOLEAN, TYPE_TEXT, TYPE_TEXT, TYPE_TEXT };
+ }
- }
+ public static interface Tabs extends BaseColumns {
+ public static final String TABLE_NAME = "tabs";
+ public static final String CONTENT_PATH = TABLE_NAME;
- public static interface Tabs extends BaseColumns {
- public static final String TABLE_NAME = "tabs";
- public static final String CONTENT_PATH = TABLE_NAME;
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ public static final String NAME = "name";
- public static final String NAME = "name";
+ public static final String ICON = "icon";
- public static final String ICON = "icon";
+ public static final String TYPE = "type";
- public static final String TYPE = "type";
+ public static final String ARGUMENTS = "arguments";
- public static final String ARGUMENTS = "arguments";
+ public static final String EXTRAS = "extras";
- public static final String EXTRAS = "extras";
+ public static final String POSITION = "position";
- public static final String POSITION = "position";
+ public static final String[] COLUMNS = new String[]{_ID, NAME, ICON, TYPE, ARGUMENTS, EXTRAS, POSITION};
- public static final String[] COLUMNS = new String[] { _ID, NAME, ICON, TYPE, ARGUMENTS, EXTRAS, POSITION };
+ public static final String[] TYPES = new String[]{TYPE_PRIMARY_KEY, TYPE_TEXT_NOT_NULL, TYPE_TEXT, TYPE_TEXT,
+ TYPE_TEXT, TYPE_TEXT, TYPE_INT};
- public static final String[] TYPES = new String[] { TYPE_PRIMARY_KEY, TYPE_TEXT_NOT_NULL, TYPE_TEXT, TYPE_TEXT,
- TYPE_TEXT, TYPE_TEXT, TYPE_INT };
+ public static final String DEFAULT_SORT_ORDER = POSITION + " ASC";
+ }
- public static final String DEFAULT_SORT_ORDER = POSITION + " ASC";
- }
+ public static interface UnreadCounts extends BaseColumns {
- public static interface UnreadCounts extends BaseColumns {
+ public static final String CONTENT_PATH = "unread_counts";
- public static final String CONTENT_PATH = "unread_counts";
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
- public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, CONTENT_PATH);
+ public static final String TAB_POSITION = "tab_position";
- public static final String TAB_POSITION = "tab_position";
+ public static final String TAB_TYPE = "tab_type";
- public static final String TAB_TYPE = "tab_type";
+ public static final String COUNT = "count";
- public static final String COUNT = "count";
+ public static final String[] MATRIX_COLUMNS = new String[]{TAB_POSITION, TAB_TYPE, COUNT};
- public static final String[] MATRIX_COLUMNS = new String[] { TAB_POSITION, TAB_TYPE, COUNT };
+ public static final String[] COLUMNS = new String[]{_ID, TAB_POSITION, TAB_TYPE, COUNT};
- public static final String[] COLUMNS = new String[] { _ID, TAB_POSITION, TAB_TYPE, COUNT };
+ public static interface ByType extends UnreadCounts {
- public static interface ByType extends UnreadCounts {
+ public static final String CONTENT_PATH_SEGMENT = "by_type";
- public static final String CONTENT_PATH_SEGMENT = "by_type";
+ public static final String CONTENT_PATH = UnreadCounts.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
- public static final String CONTENT_PATH = UnreadCounts.CONTENT_PATH + "/" + CONTENT_PATH_SEGMENT;
-
- public static final Uri CONTENT_URI = Uri.withAppendedPath(UnreadCounts.CONTENT_URI, CONTENT_PATH_SEGMENT);
- }
- }
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(UnreadCounts.CONTENT_URI, CONTENT_PATH_SEGMENT);
+ }
+ }
}
diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/ContentValuesCreator.java b/twidere/src/main/java/org/mariotaku/twidere/util/ContentValuesCreator.java
index 5c12efb68..9e952f5b8 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/util/ContentValuesCreator.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/util/ContentValuesCreator.java
@@ -19,8 +19,6 @@
package org.mariotaku.twidere.util;
-import static org.mariotaku.twidere.util.HtmlEscapeHelper.toPlainText;
-
import android.content.ContentValues;
import org.json.JSONException;
@@ -44,6 +42,9 @@ import org.mariotaku.twidere.provider.TweetStore.Drafts;
import org.mariotaku.twidere.provider.TweetStore.Filters;
import org.mariotaku.twidere.provider.TweetStore.Statuses;
+import java.util.ArrayList;
+import java.util.List;
+
import twitter4j.DirectMessage;
import twitter4j.GeoLocation;
import twitter4j.Status;
@@ -54,302 +55,305 @@ import twitter4j.User;
import twitter4j.auth.AccessToken;
import twitter4j.conf.Configuration;
-import java.util.ArrayList;
-import java.util.List;
+import static org.mariotaku.twidere.util.HtmlEscapeHelper.toPlainText;
public final class ContentValuesCreator implements TwidereConstants {
- public static ContentValues makeAccountContentValuesBasic(final Configuration conf, final String basicUsername,
- final String basicPassword, final User user, final int color, final String apiUrlFormat) {
- if (user == null || user.getId() <= 0) return null;
- final ContentValues values = new ContentValues();
- if (basicUsername == null || basicPassword == null) return null;
- values.put(Accounts.BASIC_AUTH_USERNAME, basicUsername);
- values.put(Accounts.BASIC_AUTH_PASSWORD, basicPassword);
- values.put(Accounts.AUTH_TYPE, Accounts.AUTH_TYPE_BASIC);
- values.put(Accounts.ACCOUNT_ID, user.getId());
- values.put(Accounts.SCREEN_NAME, user.getScreenName());
- values.put(Accounts.NAME, user.getName());
- values.put(Accounts.PROFILE_IMAGE_URL, ParseUtils.parseString(user.getProfileImageUrlHttps()));
- values.put(Accounts.PROFILE_BANNER_URL, ParseUtils.parseString(user.getProfileBannerImageUrl()));
- values.put(Accounts.COLOR, color);
- values.put(Accounts.IS_ACTIVATED, 1);
- values.put(Accounts.API_URL_FORMAT, apiUrlFormat);
- return values;
- }
+ public static ContentValues makeAccountContentValuesBasic(final Configuration conf, final String basicUsername,
+ final String basicPassword, final User user, final int color, final String apiUrlFormat,
+ final boolean noVersionSuffix) {
+ if (user == null || user.getId() <= 0) return null;
+ final ContentValues values = new ContentValues();
+ if (basicUsername == null || basicPassword == null) return null;
+ values.put(Accounts.BASIC_AUTH_USERNAME, basicUsername);
+ values.put(Accounts.BASIC_AUTH_PASSWORD, basicPassword);
+ values.put(Accounts.AUTH_TYPE, Accounts.AUTH_TYPE_BASIC);
+ values.put(Accounts.ACCOUNT_ID, user.getId());
+ values.put(Accounts.SCREEN_NAME, user.getScreenName());
+ values.put(Accounts.NAME, user.getName());
+ values.put(Accounts.PROFILE_IMAGE_URL, ParseUtils.parseString(user.getProfileImageUrlHttps()));
+ values.put(Accounts.PROFILE_BANNER_URL, ParseUtils.parseString(user.getProfileBannerImageUrl()));
+ values.put(Accounts.COLOR, color);
+ values.put(Accounts.IS_ACTIVATED, 1);
+ values.put(Accounts.API_URL_FORMAT, apiUrlFormat);
+ values.put(Accounts.NO_VERSION_SUFFIX, noVersionSuffix);
+ return values;
+ }
- public static ContentValues makeAccountContentValuesOAuth(final Configuration conf, final AccessToken accessToken,
- final User user, final int authType, final int color, final String apiUrlFormat,
- final boolean sameOAuthSigningUrl) {
- if (user == null || user.getId() <= 0 || accessToken == null || user.getId() != accessToken.getUserId())
- return null;
- final ContentValues values = new ContentValues();
- values.put(Accounts.OAUTH_TOKEN, accessToken.getToken());
- values.put(Accounts.OAUTH_TOKEN_SECRET, accessToken.getTokenSecret());
- values.put(Accounts.CONSUMER_KEY, conf.getOAuthConsumerKey());
- values.put(Accounts.CONSUMER_SECRET, conf.getOAuthConsumerSecret());
- values.put(Accounts.AUTH_TYPE, authType);
- values.put(Accounts.ACCOUNT_ID, user.getId());
- values.put(Accounts.SCREEN_NAME, user.getScreenName());
- values.put(Accounts.NAME, user.getName());
- values.put(Accounts.PROFILE_IMAGE_URL, ParseUtils.parseString(user.getProfileImageUrlHttps()));
- values.put(Accounts.PROFILE_BANNER_URL, ParseUtils.parseString(user.getProfileBannerImageUrl()));
- values.put(Accounts.COLOR, color);
- values.put(Accounts.IS_ACTIVATED, 1);
- values.put(Accounts.API_URL_FORMAT, apiUrlFormat);
- values.put(Accounts.SAME_OAUTH_SIGNING_URL, sameOAuthSigningUrl);
- return values;
- }
+ public static ContentValues makeAccountContentValuesOAuth(final Configuration conf, final AccessToken accessToken,
+ final User user, final int authType, final int color, final String apiUrlFormat,
+ final boolean sameOAuthSigningUrl, final boolean noVersionSuffix) {
+ if (user == null || user.getId() <= 0 || accessToken == null || user.getId() != accessToken.getUserId())
+ return null;
+ final ContentValues values = new ContentValues();
+ values.put(Accounts.OAUTH_TOKEN, accessToken.getToken());
+ values.put(Accounts.OAUTH_TOKEN_SECRET, accessToken.getTokenSecret());
+ values.put(Accounts.CONSUMER_KEY, conf.getOAuthConsumerKey());
+ values.put(Accounts.CONSUMER_SECRET, conf.getOAuthConsumerSecret());
+ values.put(Accounts.AUTH_TYPE, authType);
+ values.put(Accounts.ACCOUNT_ID, user.getId());
+ values.put(Accounts.SCREEN_NAME, user.getScreenName());
+ values.put(Accounts.NAME, user.getName());
+ values.put(Accounts.PROFILE_IMAGE_URL, ParseUtils.parseString(user.getProfileImageUrlHttps()));
+ values.put(Accounts.PROFILE_BANNER_URL, ParseUtils.parseString(user.getProfileBannerImageUrl()));
+ values.put(Accounts.COLOR, color);
+ values.put(Accounts.IS_ACTIVATED, 1);
+ values.put(Accounts.API_URL_FORMAT, apiUrlFormat);
+ values.put(Accounts.SAME_OAUTH_SIGNING_URL, sameOAuthSigningUrl);
+ values.put(Accounts.NO_VERSION_SUFFIX, noVersionSuffix);
+ return values;
+ }
- public static ContentValues makeAccountContentValuesTWIP(final Configuration conf, final User user,
- final int color, final String apiUrlFormat) {
- if (user == null || user.getId() <= 0) return null;
- final ContentValues values = new ContentValues();
- values.put(Accounts.AUTH_TYPE, Accounts.AUTH_TYPE_TWIP_O_MODE);
- values.put(Accounts.ACCOUNT_ID, user.getId());
- values.put(Accounts.SCREEN_NAME, user.getScreenName());
- values.put(Accounts.NAME, user.getName());
- values.put(Accounts.PROFILE_IMAGE_URL, ParseUtils.parseString(user.getProfileImageUrlHttps()));
- values.put(Accounts.PROFILE_BANNER_URL, ParseUtils.parseString(user.getProfileBannerImageUrl()));
- values.put(Accounts.COLOR, color);
- values.put(Accounts.IS_ACTIVATED, 1);
- values.put(Accounts.API_URL_FORMAT, apiUrlFormat);
- return values;
- }
+ public static ContentValues makeAccountContentValuesTWIP(final Configuration conf, final User user,
+ final int color, final String apiUrlFormat, final boolean noVersionSuffix) {
+ if (user == null || user.getId() <= 0) return null;
+ final ContentValues values = new ContentValues();
+ values.put(Accounts.AUTH_TYPE, Accounts.AUTH_TYPE_TWIP_O_MODE);
+ values.put(Accounts.ACCOUNT_ID, user.getId());
+ values.put(Accounts.SCREEN_NAME, user.getScreenName());
+ values.put(Accounts.NAME, user.getName());
+ values.put(Accounts.PROFILE_IMAGE_URL, ParseUtils.parseString(user.getProfileImageUrlHttps()));
+ values.put(Accounts.PROFILE_BANNER_URL, ParseUtils.parseString(user.getProfileBannerImageUrl()));
+ values.put(Accounts.COLOR, color);
+ values.put(Accounts.IS_ACTIVATED, 1);
+ values.put(Accounts.API_URL_FORMAT, apiUrlFormat);
+ values.put(Accounts.NO_VERSION_SUFFIX, noVersionSuffix);
+ return values;
+ }
- public static ContentValues makeCachedUserContentValues(final User user) {
- if (user == null || user.getId() <= 0) return null;
- final String profile_image_url = ParseUtils.parseString(user.getProfileImageUrlHttps());
- final String url = ParseUtils.parseString(user.getURL());
- final URLEntity[] urls = user.getURLEntities();
- final ContentValues values = new ContentValues();
- values.put(CachedUsers.USER_ID, user.getId());
- values.put(CachedUsers.NAME, user.getName());
- values.put(CachedUsers.SCREEN_NAME, user.getScreenName());
- values.put(CachedUsers.PROFILE_IMAGE_URL, profile_image_url);
- values.put(CachedUsers.CREATED_AT, user.getCreatedAt().getTime());
- values.put(CachedUsers.IS_PROTECTED, user.isProtected());
- values.put(CachedUsers.IS_VERIFIED, user.isVerified());
- values.put(CachedUsers.IS_FOLLOWING, user.isFollowing());
- values.put(CachedUsers.FAVORITES_COUNT, user.getFavouritesCount());
- values.put(CachedUsers.FOLLOWERS_COUNT, user.getFollowersCount());
- values.put(CachedUsers.FRIENDS_COUNT, user.getFriendsCount());
- values.put(CachedUsers.STATUSES_COUNT, user.getStatusesCount());
- values.put(CachedUsers.LOCATION, user.getLocation());
- values.put(CachedUsers.DESCRIPTION_PLAIN, user.getDescription());
- values.put(CachedUsers.DESCRIPTION_HTML, Utils.formatUserDescription(user));
- values.put(CachedUsers.DESCRIPTION_EXPANDED, Utils.formatExpandedUserDescription(user));
- values.put(CachedUsers.URL, url);
- values.put(CachedUsers.URL_EXPANDED,
- url != null && urls != null && urls.length > 0 ? ParseUtils.parseString(urls[0].getExpandedURL())
- : null);
- values.put(CachedUsers.PROFILE_BANNER_URL, user.getProfileBannerImageUrl());
- return values;
- }
+ public static ContentValues makeCachedUserContentValues(final User user) {
+ if (user == null || user.getId() <= 0) return null;
+ final String profile_image_url = ParseUtils.parseString(user.getProfileImageUrlHttps());
+ final String url = ParseUtils.parseString(user.getURL());
+ final URLEntity[] urls = user.getURLEntities();
+ final ContentValues values = new ContentValues();
+ values.put(CachedUsers.USER_ID, user.getId());
+ values.put(CachedUsers.NAME, user.getName());
+ values.put(CachedUsers.SCREEN_NAME, user.getScreenName());
+ values.put(CachedUsers.PROFILE_IMAGE_URL, profile_image_url);
+ values.put(CachedUsers.CREATED_AT, user.getCreatedAt().getTime());
+ values.put(CachedUsers.IS_PROTECTED, user.isProtected());
+ values.put(CachedUsers.IS_VERIFIED, user.isVerified());
+ values.put(CachedUsers.IS_FOLLOWING, user.isFollowing());
+ values.put(CachedUsers.FAVORITES_COUNT, user.getFavouritesCount());
+ values.put(CachedUsers.FOLLOWERS_COUNT, user.getFollowersCount());
+ values.put(CachedUsers.FRIENDS_COUNT, user.getFriendsCount());
+ values.put(CachedUsers.STATUSES_COUNT, user.getStatusesCount());
+ values.put(CachedUsers.LOCATION, user.getLocation());
+ values.put(CachedUsers.DESCRIPTION_PLAIN, user.getDescription());
+ values.put(CachedUsers.DESCRIPTION_HTML, Utils.formatUserDescription(user));
+ values.put(CachedUsers.DESCRIPTION_EXPANDED, Utils.formatExpandedUserDescription(user));
+ values.put(CachedUsers.URL, url);
+ values.put(CachedUsers.URL_EXPANDED,
+ url != null && urls != null && urls.length > 0 ? ParseUtils.parseString(urls[0].getExpandedURL())
+ : null);
+ values.put(CachedUsers.PROFILE_BANNER_URL, user.getProfileBannerImageUrl());
+ return values;
+ }
- public static ContentValues makeDirectMessageContentValues(final DirectMessage message, final long account_id,
- final boolean is_outgoing) {
- if (message == null || message.getId() <= 0) return null;
- final ContentValues values = new ContentValues();
- final User sender = message.getSender(), recipient = message.getRecipient();
- if (sender == null || recipient == null) return null;
- final String sender_profile_image_url = ParseUtils.parseString(sender.getProfileImageUrlHttps());
- final String recipient_profile_image_url = ParseUtils.parseString(recipient.getProfileImageUrlHttps());
- values.put(DirectMessages.ACCOUNT_ID, account_id);
- values.put(DirectMessages.MESSAGE_ID, message.getId());
- values.put(DirectMessages.MESSAGE_TIMESTAMP, message.getCreatedAt().getTime());
- values.put(DirectMessages.SENDER_ID, sender.getId());
- values.put(DirectMessages.RECIPIENT_ID, recipient.getId());
- final String text_html = Utils.formatDirectMessageText(message);
- values.put(DirectMessages.TEXT_HTML, text_html);
- values.put(DirectMessages.TEXT_PLAIN, message.getText());
- values.put(DirectMessages.TEXT_UNESCAPED, toPlainText(text_html));
- values.put(DirectMessages.IS_OUTGOING, is_outgoing);
- values.put(DirectMessages.SENDER_NAME, sender.getName());
- values.put(DirectMessages.SENDER_SCREEN_NAME, sender.getScreenName());
- values.put(DirectMessages.RECIPIENT_NAME, recipient.getName());
- values.put(DirectMessages.RECIPIENT_SCREEN_NAME, recipient.getScreenName());
- values.put(DirectMessages.SENDER_PROFILE_IMAGE_URL, sender_profile_image_url);
- values.put(DirectMessages.RECIPIENT_PROFILE_IMAGE_URL, recipient_profile_image_url);
- final ParcelableMedia[] medias = ParcelableMedia.fromEntities(message);
- if (medias != null) {
- values.put(DirectMessages.MEDIAS, JSONSerializer.toJSONArrayString(medias));
- values.put(DirectMessages.FIRST_MEDIA, medias[0].url);
- }
- return values;
- }
+ public static ContentValues makeDirectMessageContentValues(final DirectMessage message, final long account_id,
+ final boolean is_outgoing) {
+ if (message == null || message.getId() <= 0) return null;
+ final ContentValues values = new ContentValues();
+ final User sender = message.getSender(), recipient = message.getRecipient();
+ if (sender == null || recipient == null) return null;
+ final String sender_profile_image_url = ParseUtils.parseString(sender.getProfileImageUrlHttps());
+ final String recipient_profile_image_url = ParseUtils.parseString(recipient.getProfileImageUrlHttps());
+ values.put(DirectMessages.ACCOUNT_ID, account_id);
+ values.put(DirectMessages.MESSAGE_ID, message.getId());
+ values.put(DirectMessages.MESSAGE_TIMESTAMP, message.getCreatedAt().getTime());
+ values.put(DirectMessages.SENDER_ID, sender.getId());
+ values.put(DirectMessages.RECIPIENT_ID, recipient.getId());
+ final String text_html = Utils.formatDirectMessageText(message);
+ values.put(DirectMessages.TEXT_HTML, text_html);
+ values.put(DirectMessages.TEXT_PLAIN, message.getText());
+ values.put(DirectMessages.TEXT_UNESCAPED, toPlainText(text_html));
+ values.put(DirectMessages.IS_OUTGOING, is_outgoing);
+ values.put(DirectMessages.SENDER_NAME, sender.getName());
+ values.put(DirectMessages.SENDER_SCREEN_NAME, sender.getScreenName());
+ values.put(DirectMessages.RECIPIENT_NAME, recipient.getName());
+ values.put(DirectMessages.RECIPIENT_SCREEN_NAME, recipient.getScreenName());
+ values.put(DirectMessages.SENDER_PROFILE_IMAGE_URL, sender_profile_image_url);
+ values.put(DirectMessages.RECIPIENT_PROFILE_IMAGE_URL, recipient_profile_image_url);
+ final ParcelableMedia[] medias = ParcelableMedia.fromEntities(message);
+ if (medias != null) {
+ values.put(DirectMessages.MEDIAS, JSONSerializer.toJSONArrayString(medias));
+ values.put(DirectMessages.FIRST_MEDIA, medias[0].url);
+ }
+ return values;
+ }
- public static ContentValues makeDirectMessageContentValues(final ParcelableDirectMessage message) {
- if (message == null || message.id <= 0) return null;
- final ContentValues values = new ContentValues();
- values.put(DirectMessages.ACCOUNT_ID, message.account_id);
- values.put(DirectMessages.MESSAGE_ID, message.id);
- values.put(DirectMessages.MESSAGE_TIMESTAMP, message.timestamp);
- values.put(DirectMessages.SENDER_ID, message.sender_id);
- values.put(DirectMessages.RECIPIENT_ID, message.recipient_id);
- values.put(DirectMessages.TEXT_HTML, message.text_html);
- values.put(DirectMessages.TEXT_PLAIN, message.text_plain);
- values.put(DirectMessages.IS_OUTGOING, message.is_outgoing);
- values.put(DirectMessages.SENDER_NAME, message.sender_name);
- values.put(DirectMessages.SENDER_SCREEN_NAME, message.sender_screen_name);
- values.put(DirectMessages.RECIPIENT_NAME, message.recipient_name);
- values.put(DirectMessages.RECIPIENT_SCREEN_NAME, message.recipient_screen_name);
- values.put(DirectMessages.SENDER_PROFILE_IMAGE_URL, message.sender_profile_image_url);
- values.put(DirectMessages.RECIPIENT_PROFILE_IMAGE_URL, message.recipient_profile_image_url);
- if (message.medias != null) {
- values.put(Statuses.MEDIAS, JSONSerializer.toJSONArrayString(message.medias));
- values.put(Statuses.FIRST_MEDIA, message.medias[0].url);
- }
- return values;
- }
+ public static ContentValues makeDirectMessageContentValues(final ParcelableDirectMessage message) {
+ if (message == null || message.id <= 0) return null;
+ final ContentValues values = new ContentValues();
+ values.put(DirectMessages.ACCOUNT_ID, message.account_id);
+ values.put(DirectMessages.MESSAGE_ID, message.id);
+ values.put(DirectMessages.MESSAGE_TIMESTAMP, message.timestamp);
+ values.put(DirectMessages.SENDER_ID, message.sender_id);
+ values.put(DirectMessages.RECIPIENT_ID, message.recipient_id);
+ values.put(DirectMessages.TEXT_HTML, message.text_html);
+ values.put(DirectMessages.TEXT_PLAIN, message.text_plain);
+ values.put(DirectMessages.IS_OUTGOING, message.is_outgoing);
+ values.put(DirectMessages.SENDER_NAME, message.sender_name);
+ values.put(DirectMessages.SENDER_SCREEN_NAME, message.sender_screen_name);
+ values.put(DirectMessages.RECIPIENT_NAME, message.recipient_name);
+ values.put(DirectMessages.RECIPIENT_SCREEN_NAME, message.recipient_screen_name);
+ values.put(DirectMessages.SENDER_PROFILE_IMAGE_URL, message.sender_profile_image_url);
+ values.put(DirectMessages.RECIPIENT_PROFILE_IMAGE_URL, message.recipient_profile_image_url);
+ if (message.medias != null) {
+ values.put(Statuses.MEDIAS, JSONSerializer.toJSONArrayString(message.medias));
+ values.put(Statuses.FIRST_MEDIA, message.medias[0].url);
+ }
+ return values;
+ }
- public static ContentValues makeDirectMessageDraftContentValues(final long accountId, final long recipientId,
- final String text, final String imageUri) {
- final ContentValues values = new ContentValues();
- values.put(Drafts.ACTION_TYPE, Drafts.ACTION_SEND_DIRECT_MESSAGE);
- values.put(Drafts.TEXT, text);
- values.put(Drafts.ACCOUNT_IDS, ArrayUtils.toString(new long[] { accountId }, ',', false));
- values.put(Drafts.TIMESTAMP, System.currentTimeMillis());
- if (imageUri != null) {
- final ParcelableMediaUpdate[] medias = { new ParcelableMediaUpdate(imageUri, 0) };
- values.put(Drafts.MEDIAS, JSONSerializer.toJSONArrayString(medias));
- }
- final JSONObject extras = new JSONObject();
- try {
- extras.put(EXTRA_RECIPIENT_ID, recipientId);
- } catch (final JSONException e) {
- e.printStackTrace();
- }
- values.put(Drafts.ACTION_EXTRAS, extras.toString());
- return values;
- }
+ public static ContentValues makeDirectMessageDraftContentValues(final long accountId, final long recipientId,
+ final String text, final String imageUri) {
+ final ContentValues values = new ContentValues();
+ values.put(Drafts.ACTION_TYPE, Drafts.ACTION_SEND_DIRECT_MESSAGE);
+ values.put(Drafts.TEXT, text);
+ values.put(Drafts.ACCOUNT_IDS, ArrayUtils.toString(new long[]{accountId}, ',', false));
+ values.put(Drafts.TIMESTAMP, System.currentTimeMillis());
+ if (imageUri != null) {
+ final ParcelableMediaUpdate[] medias = {new ParcelableMediaUpdate(imageUri, 0)};
+ values.put(Drafts.MEDIAS, JSONSerializer.toJSONArrayString(medias));
+ }
+ final JSONObject extras = new JSONObject();
+ try {
+ extras.put(EXTRA_RECIPIENT_ID, recipientId);
+ } catch (final JSONException e) {
+ e.printStackTrace();
+ }
+ values.put(Drafts.ACTION_EXTRAS, extras.toString());
+ return values;
+ }
- public static ContentValues makeFilterdUserContentValues(final ParcelableStatus status) {
- if (status == null) return null;
- final ContentValues values = new ContentValues();
- values.put(Filters.Users.USER_ID, status.user_id);
- values.put(Filters.Users.NAME, status.user_name);
- values.put(Filters.Users.SCREEN_NAME, status.user_screen_name);
- return values;
- }
+ public static ContentValues makeFilteredUserContentValues(final ParcelableStatus status) {
+ if (status == null) return null;
+ final ContentValues values = new ContentValues();
+ values.put(Filters.Users.USER_ID, status.user_id);
+ values.put(Filters.Users.NAME, status.user_name);
+ values.put(Filters.Users.SCREEN_NAME, status.user_screen_name);
+ return values;
+ }
- public static ContentValues makeFilterdUserContentValues(final ParcelableUser user) {
- if (user == null) return null;
- final ContentValues values = new ContentValues();
- values.put(Filters.Users.USER_ID, user.id);
- values.put(Filters.Users.NAME, user.name);
- values.put(Filters.Users.SCREEN_NAME, user.screen_name);
- return values;
- }
+ public static ContentValues makeFilteredUserContentValues(final ParcelableUser user) {
+ if (user == null) return null;
+ final ContentValues values = new ContentValues();
+ values.put(Filters.Users.USER_ID, user.id);
+ values.put(Filters.Users.NAME, user.name);
+ values.put(Filters.Users.SCREEN_NAME, user.screen_name);
+ return values;
+ }
- public static ContentValues makeFilterdUserContentValues(final ParcelableUserMention user) {
- if (user == null) return null;
- final ContentValues values = new ContentValues();
- values.put(Filters.Users.USER_ID, user.id);
- values.put(Filters.Users.NAME, user.name);
- values.put(Filters.Users.SCREEN_NAME, user.screen_name);
- return values;
- }
+ public static ContentValues makeFilteredUserContentValues(final ParcelableUserMention user) {
+ if (user == null) return null;
+ final ContentValues values = new ContentValues();
+ values.put(Filters.Users.USER_ID, user.id);
+ values.put(Filters.Users.NAME, user.name);
+ values.put(Filters.Users.SCREEN_NAME, user.screen_name);
+ return values;
+ }
- public static ContentValues makeStatusContentValues(final Status orig, final long account_id) {
- if (orig == null || orig.getId() <= 0) return null;
- final ContentValues values = new ContentValues();
- values.put(Statuses.ACCOUNT_ID, account_id);
- values.put(Statuses.STATUS_ID, orig.getId());
- values.put(Statuses.STATUS_TIMESTAMP, orig.getCreatedAt().getTime());
- values.put(Statuses.MY_RETWEET_ID, orig.getCurrentUserRetweet());
- final boolean is_retweet = orig.isRetweet();
- final Status status;
- final Status retweeted_status = is_retweet ? orig.getRetweetedStatus() : null;
- if (retweeted_status != null) {
- final User retweet_user = orig.getUser();
- values.put(Statuses.RETWEET_ID, retweeted_status.getId());
- values.put(Statuses.RETWEET_TIMESTAMP, retweeted_status.getCreatedAt().getTime());
- values.put(Statuses.RETWEETED_BY_USER_ID, retweet_user.getId());
- values.put(Statuses.RETWEETED_BY_USER_NAME, retweet_user.getName());
- values.put(Statuses.RETWEETED_BY_USER_SCREEN_NAME, retweet_user.getScreenName());
- status = retweeted_status;
- } else {
- status = orig;
- }
- final User user = status.getUser();
- if (user != null) {
- final long userId = user.getId();
- final String profileImageUrl = ParseUtils.parseString(user.getProfileImageUrlHttps());
- final String name = user.getName(), screenName = user.getScreenName();
- values.put(Statuses.USER_ID, userId);
- values.put(Statuses.USER_NAME, name);
- values.put(Statuses.USER_SCREEN_NAME, screenName);
- values.put(Statuses.IS_PROTECTED, user.isProtected());
- values.put(Statuses.IS_VERIFIED, user.isVerified());
- values.put(Statuses.USER_PROFILE_IMAGE_URL, profileImageUrl);
- values.put(CachedUsers.IS_FOLLOWING, user.isFollowing());
- }
- final String text_html = Utils.formatStatusText(status);
- values.put(Statuses.TEXT_HTML, text_html);
- values.put(Statuses.TEXT_PLAIN, status.getText());
- values.put(Statuses.TEXT_UNESCAPED, toPlainText(text_html));
- values.put(Statuses.RETWEET_COUNT, status.getRetweetCount());
- values.put(Statuses.IN_REPLY_TO_STATUS_ID, status.getInReplyToStatusId());
- values.put(Statuses.IN_REPLY_TO_USER_ID, status.getInReplyToUserId());
- values.put(Statuses.IN_REPLY_TO_USER_NAME, Utils.getInReplyToName(status));
- values.put(Statuses.IN_REPLY_TO_USER_SCREEN_NAME, status.getInReplyToScreenName());
- values.put(Statuses.SOURCE, status.getSource());
- values.put(Statuses.IS_POSSIBLY_SENSITIVE, status.isPossiblySensitive());
- final GeoLocation location = status.getGeoLocation();
- if (location != null) {
- values.put(Statuses.LOCATION, location.getLatitude() + "," + location.getLongitude());
- }
- values.put(Statuses.IS_RETWEET, is_retweet);
- values.put(Statuses.IS_FAVORITE, status.isFavorited());
- final ParcelableMedia[] medias = ParcelableMedia.fromEntities(status);
- if (medias != null) {
- values.put(Statuses.MEDIAS, JSONSerializer.toJSONArrayString(medias));
- values.put(Statuses.FIRST_MEDIA, medias[0].url);
- }
- final ParcelableUserMention[] mentions = ParcelableUserMention.fromStatus(status);
- if (mentions != null) {
- values.put(Statuses.MENTIONS, JSONSerializer.toJSONArrayString(mentions));
- }
- return values;
- }
+ public static ContentValues makeStatusContentValues(final Status orig, final long account_id) {
+ if (orig == null || orig.getId() <= 0) return null;
+ final ContentValues values = new ContentValues();
+ values.put(Statuses.ACCOUNT_ID, account_id);
+ values.put(Statuses.STATUS_ID, orig.getId());
+ values.put(Statuses.STATUS_TIMESTAMP, orig.getCreatedAt().getTime());
+ values.put(Statuses.MY_RETWEET_ID, orig.getCurrentUserRetweet());
+ final boolean isRetweet = orig.isRetweet();
+ final Status status;
+ final Status retweetedStatus = isRetweet ? orig.getRetweetedStatus() : null;
+ if (retweetedStatus != null) {
+ final User retweetUser = orig.getUser();
+ values.put(Statuses.RETWEET_ID, retweetedStatus.getId());
+ values.put(Statuses.RETWEET_TIMESTAMP, retweetedStatus.getCreatedAt().getTime());
+ values.put(Statuses.RETWEETED_BY_USER_ID, retweetUser.getId());
+ values.put(Statuses.RETWEETED_BY_USER_NAME, retweetUser.getName());
+ values.put(Statuses.RETWEETED_BY_USER_SCREEN_NAME, retweetUser.getScreenName());
+ status = retweetedStatus;
+ } else {
+ status = orig;
+ }
+ final User user = status.getUser();
+ if (user != null) {
+ final long userId = user.getId();
+ final String profileImageUrl = ParseUtils.parseString(user.getProfileImageUrlHttps());
+ final String name = user.getName(), screenName = user.getScreenName();
+ values.put(Statuses.USER_ID, userId);
+ values.put(Statuses.USER_NAME, name);
+ values.put(Statuses.USER_SCREEN_NAME, screenName);
+ values.put(Statuses.IS_PROTECTED, user.isProtected());
+ values.put(Statuses.IS_VERIFIED, user.isVerified());
+ values.put(Statuses.USER_PROFILE_IMAGE_URL, profileImageUrl);
+ values.put(CachedUsers.IS_FOLLOWING, user.isFollowing());
+ }
+ final String text_html = Utils.formatStatusText(status);
+ values.put(Statuses.TEXT_HTML, text_html);
+ values.put(Statuses.TEXT_PLAIN, status.getText());
+ values.put(Statuses.TEXT_UNESCAPED, toPlainText(text_html));
+ values.put(Statuses.RETWEET_COUNT, status.getRetweetCount());
+ values.put(Statuses.IN_REPLY_TO_STATUS_ID, status.getInReplyToStatusId());
+ values.put(Statuses.IN_REPLY_TO_USER_ID, status.getInReplyToUserId());
+ values.put(Statuses.IN_REPLY_TO_USER_NAME, Utils.getInReplyToName(status));
+ values.put(Statuses.IN_REPLY_TO_USER_SCREEN_NAME, status.getInReplyToScreenName());
+ values.put(Statuses.SOURCE, status.getSource());
+ values.put(Statuses.IS_POSSIBLY_SENSITIVE, status.isPossiblySensitive());
+ final GeoLocation location = status.getGeoLocation();
+ if (location != null) {
+ values.put(Statuses.LOCATION, location.getLatitude() + "," + location.getLongitude());
+ }
+ values.put(Statuses.IS_RETWEET, isRetweet);
+ values.put(Statuses.IS_FAVORITE, status.isFavorited());
+ final ParcelableMedia[] medias = ParcelableMedia.fromEntities(status);
+ if (medias != null) {
+ values.put(Statuses.MEDIAS, JSONSerializer.toJSONArrayString(medias));
+ values.put(Statuses.FIRST_MEDIA, medias[0].url);
+ }
+ final ParcelableUserMention[] mentions = ParcelableUserMention.fromStatus(status);
+ if (mentions != null) {
+ values.put(Statuses.MENTIONS, JSONSerializer.toJSONArrayString(mentions));
+ }
+ return values;
+ }
- public static ContentValues makeStatusDraftContentValues(final ParcelableStatusUpdate status) {
- return makeStatusDraftContentValues(status, Account.getAccountIds(status.accounts));
- }
+ public static ContentValues makeStatusDraftContentValues(final ParcelableStatusUpdate status) {
+ return makeStatusDraftContentValues(status, Account.getAccountIds(status.accounts));
+ }
- public static ContentValues makeStatusDraftContentValues(final ParcelableStatusUpdate status,
- final long[] accountIds) {
- final ContentValues values = new ContentValues();
- values.put(Drafts.ACTION_TYPE, Drafts.ACTION_UPDATE_STATUS);
- values.put(Drafts.TEXT, status.text);
- values.put(Drafts.ACCOUNT_IDS, ArrayUtils.toString(accountIds, ',', false));
- values.put(Drafts.IN_REPLY_TO_STATUS_ID, status.in_reply_to_status_id);
- values.put(Drafts.LOCATION, ParcelableLocation.toString(status.location));
- values.put(Drafts.IS_POSSIBLY_SENSITIVE, status.is_possibly_sensitive);
- values.put(Drafts.TIMESTAMP, System.currentTimeMillis());
- if (status.medias != null) {
- values.put(Drafts.MEDIAS, JSONSerializer.toJSONArrayString(status.medias));
- }
- return values;
- }
+ public static ContentValues makeStatusDraftContentValues(final ParcelableStatusUpdate status,
+ final long[] accountIds) {
+ final ContentValues values = new ContentValues();
+ values.put(Drafts.ACTION_TYPE, Drafts.ACTION_UPDATE_STATUS);
+ values.put(Drafts.TEXT, status.text);
+ values.put(Drafts.ACCOUNT_IDS, ArrayUtils.toString(accountIds, ',', false));
+ values.put(Drafts.IN_REPLY_TO_STATUS_ID, status.in_reply_to_status_id);
+ values.put(Drafts.LOCATION, ParcelableLocation.toString(status.location));
+ values.put(Drafts.IS_POSSIBLY_SENSITIVE, status.is_possibly_sensitive);
+ values.put(Drafts.TIMESTAMP, System.currentTimeMillis());
+ if (status.medias != null) {
+ values.put(Drafts.MEDIAS, JSONSerializer.toJSONArrayString(status.medias));
+ }
+ return values;
+ }
- public static ContentValues[] makeTrendsContentValues(final List trends_list) {
- if (trends_list == null) return new ContentValues[0];
- final List result_list = new ArrayList();
- for (final Trends trends : trends_list) {
- if (trends == null) {
- continue;
- }
- final long timestamp = trends.getTrendAt().getTime();
- for (final Trend trend : trends.getTrends()) {
- final ContentValues values = new ContentValues();
- values.put(CachedTrends.NAME, trend.getName());
- values.put(CachedTrends.TIMESTAMP, timestamp);
- result_list.add(values);
- }
- }
- return result_list.toArray(new ContentValues[result_list.size()]);
- }
+ public static ContentValues[] makeTrendsContentValues(final List trendsList) {
+ if (trendsList == null) return new ContentValues[0];
+ final List resultList = new ArrayList<>();
+ for (final Trends trends : trendsList) {
+ if (trends == null) {
+ continue;
+ }
+ final long timestamp = trends.getTrendAt().getTime();
+ for (final Trend trend : trends.getTrends()) {
+ final ContentValues values = new ContentValues();
+ values.put(CachedTrends.NAME, trend.getName());
+ values.put(CachedTrends.TIMESTAMP, timestamp);
+ resultList.add(values);
+ }
+ }
+ return resultList.toArray(new ContentValues[resultList.size()]);
+ }
}
diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/MultiSelectEventHandler.java b/twidere/src/main/java/org/mariotaku/twidere/util/MultiSelectEventHandler.java
index 81095471f..a3ed280eb 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/util/MultiSelectEventHandler.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/util/MultiSelectEventHandler.java
@@ -52,7 +52,6 @@ import java.util.TreeSet;
import de.keyboardsurfer.android.widget.crouton.Crouton;
import de.keyboardsurfer.android.widget.crouton.CroutonStyle;
-import static org.mariotaku.twidere.util.ContentValuesCreator.makeFilterdUserContentValues;
import static org.mariotaku.twidere.util.Utils.getAccountScreenNames;
import static org.mariotaku.twidere.util.content.ContentResolverUtils.bulkDelete;
import static org.mariotaku.twidere.util.content.ContentResolverUtils.bulkInsert;
@@ -145,11 +144,11 @@ public class MultiSelectEventHandler implements Constants, ActionMode.Callback,
if (object instanceof ParcelableStatus) {
final ParcelableStatus status = (ParcelableStatus) object;
userIds.add(status.user_id);
- valuesList.add(makeFilterdUserContentValues(status));
+ valuesList.add(ContentValuesCreator.makeFilteredUserContentValues(status));
} else if (object instanceof ParcelableUser) {
final ParcelableUser user = (ParcelableUser) object;
userIds.add(user.id);
- valuesList.add(makeFilterdUserContentValues(user));
+ valuesList.add(ContentValuesCreator.makeFilteredUserContentValues(user));
} else {
continue;
}
diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/SpannableStringBuilder.java b/twidere/src/main/java/org/mariotaku/twidere/util/SpannableStringBuilder.java
deleted file mode 100644
index f7691aa02..000000000
--- a/twidere/src/main/java/org/mariotaku/twidere/util/SpannableStringBuilder.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.mariotaku.twidere.util;
-
-public class SpannableStringBuilder {
-
-}
diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/ThemeUtils.java b/twidere/src/main/java/org/mariotaku/twidere/util/ThemeUtils.java
index bfe4f4185..2c976cf22 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/util/ThemeUtils.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/util/ThemeUtils.java
@@ -35,10 +35,14 @@ import android.support.annotation.NonNull;
import android.text.TextPaint;
import android.text.TextUtils;
import android.util.AttributeSet;
+import android.view.ContextMenu.ContextMenuInfo;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
import android.view.View;
+import org.mariotaku.menucomponent.widget.MenuBar.MenuBarMenuInfo;
import org.mariotaku.refreshnow.widget.RefreshNowConfig;
import org.mariotaku.refreshnow.widget.RefreshNowProgressIndicator.IndicatorConfig;
import org.mariotaku.twidere.Constants;
@@ -114,6 +118,25 @@ public class ThemeUtils implements Constants {
d.setAlpha(getUserThemeBackgroundAlpha(context));
}
+ public static void applyColorFilterToMenuIcon(Menu menu, int color, int popupColor, PorterDuff.Mode mode, int... excludedGroups) {
+ for (int i = 0, j = menu.size(); i < j; i++) {
+ final MenuItem item = menu.getItem(i);
+ final Drawable icon = item.getIcon();
+ final ContextMenuInfo info = item.getMenuInfo();
+ if (ArrayUtils.contains(excludedGroups, item.getGroupId())) {
+ icon.mutate().clearColorFilter();
+ } else if (info instanceof MenuBarMenuInfo) {
+ final boolean inPopup = ((MenuBarMenuInfo) info).isInPopup();
+ icon.mutate().setColorFilter(inPopup ? popupColor : color, mode);
+ } else {
+ icon.mutate().setColorFilter(color, mode);
+ }
+ if (item.hasSubMenu()) {
+ applyColorFilterToMenuIcon(item.getSubMenu(), color, popupColor, mode, excludedGroups);
+ }
+ }
+ }
+
public static IndicatorConfig buildRefreshIndicatorConfig(final Context context) {
final IndicatorConfig.Builder builder = new IndicatorConfig.Builder(context);
final Resources res = context.getResources();
diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/Utils.java b/twidere/src/main/java/org/mariotaku/twidere/util/Utils.java
index fda4b6ca3..fa5a4d8fe 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/util/Utils.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/util/Utils.java
@@ -1493,7 +1493,8 @@ public final class Utils implements Constants, TwitterConstants {
public static String getApiUrl(final String pattern, final String domain, final String appendPath) {
final String urlBase = getApiBaseUrl(pattern, domain);
- if (urlBase == null || appendPath == null) return urlBase;
+ if (urlBase == null) return null;
+ if (appendPath == null) return urlBase.endsWith("/") ? urlBase : urlBase + "/";
final StringBuilder sb = new StringBuilder(urlBase);
if (urlBase.endsWith("/")) {
sb.append(appendPath.startsWith("/") ? appendPath.substring(1) : appendPath);
@@ -2250,9 +2251,10 @@ public final class Utils implements Constants, TwitterConstants {
final String prefConsumerSecret = prefs.getString(KEY_CONSUMER_SECRET, TWITTER_CONSUMER_SECRET);
final ConfigurationBuilder cb = new ConfigurationBuilder();
if (!isEmpty(account.api_url_format)) {
- cb.setRestBaseURL(getApiUrl(account.api_url_format, "api", "/1.1/"));
+ final String versionSuffix = account.no_version_suffix ? null : "/1.1/";
+ cb.setRestBaseURL(getApiUrl(account.api_url_format, "api", versionSuffix));
cb.setOAuthBaseURL(getApiUrl(account.api_url_format, "api", "/oauth/"));
- cb.setUploadBaseURL(getApiUrl(account.api_url_format, "upload", "/1.1/"));
+ cb.setUploadBaseURL(getApiUrl(account.api_url_format, "upload", versionSuffix));
if (!account.same_oauth_signing_url) {
cb.setSigningRestBaseURL(DEFAULT_SIGNING_REST_BASE_URL);
cb.setSigningOAuthBaseURL(DEFAULT_SIGNING_OAUTH_BASE_URL);
@@ -2291,7 +2293,7 @@ public final class Utils implements Constants, TwitterConstants {
final String where = Where.equals(new Column(Accounts.ACCOUNT_ID), accountId).getSQL();
final Cursor c = ContentResolverUtils.query(context.getContentResolver(), Accounts.CONTENT_URI,
- Accounts.COLUMNS, where.toString(), null, null);
+ Accounts.COLUMNS, where, null, null);
if (c == null) return null;
try {
if (!c.moveToFirst()) return null;
@@ -2416,7 +2418,7 @@ public final class Utils implements Constants, TwitterConstants {
// versions
final String where = Where.equals(new Column(Accounts.ACCOUNT_ID), accountId).getSQL();
final Cursor c = ContentResolverUtils.query(context.getContentResolver(), Accounts.CONTENT_URI,
- Accounts.COLUMNS, where.toString(), null, null);
+ Accounts.COLUMNS, where, null, null);
if (c == null) return null;
try {
if (!c.moveToFirst()) return null;
@@ -2793,22 +2795,22 @@ public final class Utils implements Constants, TwitterConstants {
// SCREENLAYOUT_LAYOUTDIR_RTL;
}
- public static boolean isSameAccount(final Context context, final long account_id, final long user_id) {
- if (context == null || account_id <= 0 || user_id <= 0) return false;
- return account_id == user_id;
+ public static boolean isSameAccount(final Context context, final long accountId, final long userId) {
+ if (context == null || accountId <= 0 || userId <= 0) return false;
+ return accountId == userId;
}
- public static boolean isSameAccount(final Context context, final long account_id, final String screen_name) {
- if (context == null || account_id <= 0 || screen_name == null) return false;
- return screen_name.equalsIgnoreCase(getAccountScreenName(context, account_id));
+ public static boolean isSameAccount(final Context context, final long accountId, final String screenName) {
+ if (context == null || accountId <= 0 || screenName == null) return false;
+ return screenName.equalsIgnoreCase(getAccountScreenName(context, accountId));
}
- public static boolean isUserLoggedIn(final Context context, final long account_id) {
+ public static boolean isUserLoggedIn(final Context context, final long accountId) {
if (context == null) return false;
final long[] ids = getAccountIds(context);
if (ids == null) return false;
for (final long id : ids) {
- if (id == account_id) return true;
+ if (id == accountId) return true;
}
return false;
}
@@ -3483,11 +3485,11 @@ public final class Utils implements Constants, TwitterConstants {
addIntentToMenuForExtension(context, menu, MENU_GROUP_STATUS_EXTENSION, INTENT_ACTION_EXTENSION_OPEN_STATUS,
EXTRA_STATUS, EXTRA_STATUS_JSON, status);
final MenuItem shareItem = menu.findItem(R.id.share_submenu);
- final Menu shareSubmenu = shareItem != null && shareItem.hasSubMenu() ? shareItem.getSubMenu() : null;
- if (shareSubmenu != null) {
+ final Menu shareSubMenu = shareItem != null && shareItem.hasSubMenu() ? shareItem.getSubMenu() : null;
+ if (shareSubMenu != null) {
final Intent shareIntent = createStatusShareIntent(context, status);
- shareSubmenu.removeGroup(MENU_GROUP_STATUS_SHARE);
- addIntentToMenu(context, shareSubmenu, shareIntent, MENU_GROUP_STATUS_SHARE);
+ shareSubMenu.removeGroup(MENU_GROUP_STATUS_SHARE);
+ addIntentToMenu(context, shareSubMenu, shareIntent, MENU_GROUP_STATUS_SHARE);
}
}
@@ -3813,15 +3815,13 @@ public final class Utils implements Constants, TwitterConstants {
}
private static boolean isExtensionUseJSON(final ResolveInfo info) {
- if (info == null || info.activityInfo == null) return true;
+ if (info == null || info.activityInfo == null) return false;
final ActivityInfo activityInfo = info.activityInfo;
if (activityInfo.metaData != null && activityInfo.metaData.containsKey(METADATA_KEY_EXTENSION_USE_JSON))
return activityInfo.metaData.getBoolean(METADATA_KEY_EXTENSION_USE_JSON);
final ApplicationInfo appInfo = activityInfo.applicationInfo;
- if (appInfo == null) return true;
- if (appInfo.metaData != null && appInfo.metaData.containsKey(METADATA_KEY_EXTENSION_USE_JSON))
- return appInfo.metaData.getBoolean(METADATA_KEY_EXTENSION_USE_JSON);
- return true;
+ if (appInfo == null) return false;
+ return appInfo.metaData != null && appInfo.metaData.getBoolean(METADATA_KEY_EXTENSION_USE_JSON, false);
}
private static void parseEntities(final HtmlBuilder builder, final EntitySupport entities) {
@@ -3879,7 +3879,7 @@ public final class Utils implements Constants, TwitterConstants {
/**
* Get most contrasting color
*
- * @param color
+ * @param color Input color, alpha channel will be disposed.
* @return {@link Color#WHITE} or {@link Color#BLACK}
* @see Calculating Color Contrast
*/
diff --git a/twidere/src/main/java/org/mariotaku/twidere/view/TwidereMenuBar.java b/twidere/src/main/java/org/mariotaku/twidere/view/TwidereMenuBar.java
index ae2f86940..47748c9cc 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/view/TwidereMenuBar.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/view/TwidereMenuBar.java
@@ -1,26 +1,46 @@
package org.mariotaku.twidere.view;
import android.content.Context;
+import android.graphics.PorterDuff.Mode;
import android.util.AttributeSet;
-import android.view.MenuInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.MenuItem.OnMenuItemClickListener;
import org.mariotaku.menucomponent.widget.MenuBar;
-import org.mariotaku.twidere.menu.TwidereMenuInflater;
+import org.mariotaku.menucomponent.widget.MenuBar.MenuBarListener;
+import org.mariotaku.twidere.Constants;
+import org.mariotaku.twidere.util.ThemeUtils;
/**
* Created by mariotaku on 14-7-29.
*/
-public class TwidereMenuBar extends MenuBar {
+public class TwidereMenuBar extends MenuBar implements MenuBarListener, Constants {
+ private OnMenuItemClickListener mListener;
+
public TwidereMenuBar(Context context) {
super(context);
}
public TwidereMenuBar(Context context, AttributeSet attrs) {
super(context, attrs);
+ setMenuBarListener(this);
+ }
+
+ public void setOnMenuItemClickListener(OnMenuItemClickListener listener) {
+ mListener = listener;
}
@Override
- public MenuInflater getMenuInflater() {
- return new TwidereMenuInflater(getContext());
+ public void onPreShowMenu(Menu menu) {
+ final int color = ThemeUtils.getTextColorPrimary(getItemViewContext());
+ final int popupColor = ThemeUtils.getTextColorPrimary(getPopupContext());
+ ThemeUtils.applyColorFilterToMenuIcon(menu, color, popupColor, Mode.SRC_ATOP,
+ MENU_GROUP_STATUS_SHARE, MENU_GROUP_STATUS_EXTENSION);
+ }
+
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ return mListener != null && mListener.onMenuItemClick(item);
}
}
diff --git a/twidere/src/main/res/layout-v21/layout_home_actions_button.xml b/twidere/src/main/res/layout-v21/layout_home_actions_button.xml
index e15094a47..cb32fef3a 100644
--- a/twidere/src/main/res/layout-v21/layout_home_actions_button.xml
+++ b/twidere/src/main/res/layout-v21/layout_home_actions_button.xml
@@ -1,6 +1,6 @@
-
+
-
+
-
+
-
+
-
+
-
+
+
+
\ No newline at end of file
diff --git a/twidere/src/main/res/layout/layout_home_actions_button.xml b/twidere/src/main/res/layout/layout_home_actions_button.xml
index 3a510ee89..866a4f019 100644
--- a/twidere/src/main/res/layout/layout_home_actions_button.xml
+++ b/twidere/src/main/res/layout/layout_home_actions_button.xml
@@ -1,6 +1,6 @@
Excluded
Exclude this host
[DOMAIN]: Twitter API domain.\nExample: https://[DOMAIN].twitter.com/ will be replaced to https://api.twitter.com/.
+ No version suffix
\ No newline at end of file