This commit is contained in:
nuclearfog 2023-04-16 21:29:29 +02:00
parent b3edb7d647
commit 253f6339ee
No known key found for this signature in database
GPG Key ID: 03488A185C476379
13 changed files with 75 additions and 30 deletions

View File

@ -43,7 +43,7 @@ android {
proguardDictionaries {
dictionaryNames = ['dict/class-dictionary', 'dict/package-dictionary', 'dict/obfuscation-dictionary']
minLineLength 4
minLineLength 2
maxLineLength 8
linesCountInDictionary 50000
}

View File

@ -88,7 +88,7 @@ public class AccountActivity extends AppCompatActivity implements ActivityResult
m.findItem(R.id.action_add_account).setVisible(!disableSelector);
// theme icons
AppStyles.setMenuIconColor(m, settings.getIconColor());
return super.onCreateOptionsMenu(m);
return true;
}

View File

@ -141,7 +141,7 @@ public class ImageViewer extends MediaActivity implements AsyncCallback<ImageRes
getMenuInflater().inflate(R.menu.image, menu);
AppStyles.setMenuIconColor(menu, settings.getIconColor());
menu.findItem(R.id.menu_image_save).setVisible(enableSave);
return super.onCreateOptionsMenu(menu);
return true;
}
@ -150,6 +150,7 @@ public class ImageViewer extends MediaActivity implements AsyncCallback<ImageRes
if (item.getItemId() == R.id.menu_image_save) {
if (cacheUri != null) {
storeImage(cacheUri);
return true;
}
}
return super.onOptionsItemSelected(item);

View File

@ -146,7 +146,7 @@ public class LoginActivity extends AppCompatActivity implements ActivityResultCa
getMenuInflater().inflate(R.menu.login, m);
AppStyles.setMenuIconColor(m, settings.getIconColor());
m.findItem(R.id.login_select_account).setVisible(!settings.isLoggedIn());
return super.onCreateOptionsMenu(m);
return true;
}
@ -158,12 +158,14 @@ public class LoginActivity extends AppCompatActivity implements ActivityResultCa
activityResultLauncher.launch(intent);
// notify MainActivity that settings may changed
setResult(RETURN_SETTINGS_CHANGED);
return true;
}
// open account selector
else if (item.getItemId() == R.id.login_select_account) {
Intent accountManager = new Intent(this, AccountActivity.class);
accountManager.putExtra(KEY_DISABLE_SELECTOR, true);
activityResultLauncher.launch(accountManager);
return true;
}
return super.onOptionsItemSelected(item);
}

View File

@ -145,7 +145,7 @@ public class MainActivity extends AppCompatActivity implements ActivityResultCal
MenuItem search = menu.findItem(R.id.menu_search);
SearchView searchView = (SearchView) search.getActionView();
searchView.setOnQueryTextListener(this);
return super.onCreateOptionsMenu(menu);
return true;
}
@ -155,7 +155,7 @@ public class MainActivity extends AppCompatActivity implements ActivityResultCal
MenuItem search = menu.findItem(R.id.menu_search);
message.setVisible(settings.getLogin().getConfiguration().directmessageSupported());
search.collapseActionView();
return super.onPrepareOptionsMenu(menu);
return true;
}
@ -166,31 +166,37 @@ public class MainActivity extends AppCompatActivity implements ActivityResultCal
Intent user = new Intent(this, ProfileActivity.class);
user.putExtra(KEY_PROFILE_ID, settings.getLogin().getId());
startActivity(user);
return true;
}
// open status editor
else if (item.getItemId() == R.id.menu_post) {
Intent intent = new Intent(this, StatusEditor.class);
startActivity(intent);
return true;
}
// open app settings
else if (item.getItemId() == R.id.menu_settings) {
Intent settings = new Intent(this, SettingsActivity.class);
activityResultLauncher.launch(settings);
return true;
}
// theme expanded search view
else if (item.getItemId() == R.id.menu_search) {
SearchView searchView = (SearchView) item.getActionView();
AppStyles.setTheme(searchView, Color.TRANSPARENT);
return true;
}
// open message editor
else if (item.getItemId() == R.id.menu_message) {
Intent intent = new Intent(this, MessageEditor.class);
startActivity(intent);
return true;
}
// open account manager
else if (item.getItemId() == R.id.menu_account) {
Intent accountManager = new Intent(this, AccountActivity.class);
activityResultLauncher.launch(accountManager);
return true;
}
return super.onOptionsItemSelected(item);
}

View File

@ -330,6 +330,7 @@ public class ProfileActivity extends AppCompatActivity implements ActivityResult
@Override
public boolean onPrepareOptionsMenu(@NonNull Menu m) {
boolean result = super.onPrepareOptionsMenu(m);
if (user != null) {
MenuItem listItem = m.findItem(R.id.profile_lists);
@ -367,6 +368,7 @@ public class ProfileActivity extends AppCompatActivity implements ActivityResult
blockIcon.setVisible(true);
muteIcon.setVisible(true);
}
result = true;
}
if (relation != null) {
if (relation.isFollowing()) {
@ -389,8 +391,9 @@ public class ProfileActivity extends AppCompatActivity implements ActivityResult
if (relation.isFollower()) {
follow_back.setVisibility(VISIBLE);
}
result = true;
}
return super.onPrepareOptionsMenu(m);
return result;
}
@ -405,6 +408,7 @@ public class ProfileActivity extends AppCompatActivity implements ActivityResult
intent.putExtra(KEY_STATUS_EDITOR_TEXT, prefix);
}
startActivity(intent);
return true;
}
// follow / unfollow user
else if (item.getItemId() == R.id.profile_follow) {
@ -418,6 +422,7 @@ public class ProfileActivity extends AppCompatActivity implements ActivityResult
confirmDialog.show(ConfirmDialog.PROFILE_UNFOLLOW);
}
}
return true;
}
// mute user
else if (item.getItemId() == R.id.profile_mute) {
@ -431,6 +436,7 @@ public class ProfileActivity extends AppCompatActivity implements ActivityResult
confirmDialog.show(ConfirmDialog.PROFILE_MUTE);
}
}
return true;
}
// block user
else if (item.getItemId() == R.id.profile_block) {
@ -444,6 +450,7 @@ public class ProfileActivity extends AppCompatActivity implements ActivityResult
confirmDialog.show(ConfirmDialog.PROFILE_BLOCK);
}
}
return true;
}
// open profile editor
else if (item.getItemId() == R.id.profile_settings) {
@ -457,6 +464,7 @@ public class ProfileActivity extends AppCompatActivity implements ActivityResult
if (user != null && !user.isCurrentUser())
intent.putExtra(KEY_DM_PREFIX, user.getScreenname());
startActivity(intent);
return true;
}
// open users list
else if (item.getItemId() == R.id.profile_lists) {
@ -465,12 +473,14 @@ public class ProfileActivity extends AppCompatActivity implements ActivityResult
intent.putExtra(KEY_USERLIST_OWNER_ID, user.getId());
startActivity(intent);
}
return true;
}
// open request list
else if (item.getItemId() == R.id.profile_requests) {
Intent usersIntent = new Intent(this, UsersActivity.class);
usersIntent.putExtra(KEY_USERS_MODE, USERS_REQUESTS);
startActivity(usersIntent);
return true;
}
return super.onOptionsItemSelected(item);
}

View File

@ -123,17 +123,20 @@ public class SearchActivity extends AppCompatActivity implements OnTabSelectedLi
if (search.startsWith("#"))
intent.putExtra(KEY_STATUS_EDITOR_TEXT, search + " ");
startActivity(intent);
return true;
}
// theme expanded search view
else if (item.getItemId() == R.id.new_search) {
SearchView searchView = (SearchView) item.getActionView();
AppStyles.setTheme(searchView, Color.TRANSPARENT);
return true;
}
// enable/disable search filter
else if (item.getItemId() == R.id.search_filter) {
boolean enable = !settings.filterResults();
settings.setFilterResults(enable);
item.setChecked(enable);
return true;
}
return super.onOptionsItemSelected(item);
}
@ -145,10 +148,11 @@ public class SearchActivity extends AppCompatActivity implements OnTabSelectedLi
Intent search = new Intent(this, SearchActivity.class);
search.putExtra(KEY_SEARCH_QUERY, s);
startActivity(search);
return true;
} else {
Toast.makeText(getApplicationContext(), R.string.error_twitter_search, Toast.LENGTH_SHORT).show();
return false;
}
return true;
}

View File

@ -470,8 +470,9 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
copyMenu.add(MENU_GROUP_COPY, i, Menu.NONE, text);
}
}
return true;
}
return true;
return super.onPrepareOptionsMenu(m);
}
@ -486,6 +487,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
// Delete status option
if (item.getItemId() == R.id.menu_status_delete) {
confirmDialog.show(ConfirmDialog.DELETE_STATUS);
return true;
}
// add/remove bookmark
if (item.getItemId() == R.id.menu_status_bookmark) {
@ -493,12 +495,14 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
int mode = status.isBookmarked() ? StatusParam.UNBOOKMARK : StatusParam.BOOKMARK;
StatusParam param = new StatusParam(mode, status.getId());
statusLoader.execute(param, statusCallback);
return true;
}
// hide status
else if (item.getItemId() == R.id.menu_status_hide) {
int mode = hidden ? StatusParam.UNHIDE : StatusParam.HIDE;
StatusParam param = new StatusParam(mode, status.getId());
statusLoader.execute(param, statusCallback);
return true;
}
// get status link
else if (item.getItemId() == R.id.menu_status_browser) {
@ -508,6 +512,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
} catch (ActivityNotFoundException err) {
Toast.makeText(getApplicationContext(), R.string.error_connection_failed, Toast.LENGTH_SHORT).show();
}
return true;
}
// copy status link to clipboard
else if (item.getItemId() == R.id.menu_status_copy_text) {
@ -516,6 +521,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
clip.setPrimaryClip(linkClip);
Toast.makeText(getApplicationContext(), R.string.info_status_text_copied, Toast.LENGTH_SHORT).show();
}
return true;
}
// copy status link to clipboard
else if (item.getItemId() == R.id.menu_status_copy_link) {
@ -524,6 +530,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
clip.setPrimaryClip(linkClip);
Toast.makeText(getApplicationContext(), R.string.info_status_link_copied, Toast.LENGTH_SHORT).show();
}
return true;
}
// open status metrics page
else if (item.getItemId() == R.id.menu_status_metrics) {
@ -542,8 +549,9 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
Toast.makeText(getApplicationContext(), R.string.info_status_medialink_copied, Toast.LENGTH_SHORT).show();
}
}
return true;
}
return true;
return super.onOptionsItemSelected(item);
}

View File

@ -212,6 +212,7 @@ public class UserlistActivity extends AppCompatActivity implements ActivityResul
followList.setTitle(R.string.menu_list_follow);
}
}
return true;
}
return super.onPrepareOptionsMenu(m);
}
@ -225,10 +226,12 @@ public class UserlistActivity extends AppCompatActivity implements ActivityResul
Intent editList = new Intent(this, UserlistEditor.class);
editList.putExtra(KEY_LIST_EDITOR_DATA, userList);
activityResultLauncher.launch(editList);
return true;
}
// delete user list
else if (item.getItemId() == R.id.menu_delete_list) {
confirmDialog.show(ConfirmDialog.LIST_DELETE);
return true;
}
// follow user list
else if (item.getItemId() == R.id.menu_follow_list) {
@ -238,11 +241,13 @@ public class UserlistActivity extends AppCompatActivity implements ActivityResul
ListActionParam param = new ListActionParam(ListActionParam.FOLLOW, userList.getId());
listLoaderAsync.execute(param, userlistSet);
}
return true;
}
// theme expanded search view
else if (item.getItemId() == R.id.menu_list_add_user) {
SearchView searchView = (SearchView) item.getActionView();
AppStyles.setTheme(searchView, Color.TRANSPARENT);
return true;
}
}
return super.onOptionsItemSelected(item);

View File

@ -119,12 +119,14 @@ public class UserlistsActivity extends AppCompatActivity implements ActivityResu
if (item.getItemId() == R.id.list_create) {
Intent createList = new Intent(this, UserlistEditor.class);
activityResultLauncher.launch(createList);
return true;
}
// open mute/block list
else if (item.getItemId() == R.id.list_blocklists) {
Intent usersIntent = new Intent(this, UsersActivity.class);
usersIntent.putExtra(KEY_USERS_MODE, USERS_EXCLUDED);
startActivity(usersIntent);
return true;
}
return super.onOptionsItemSelected(item);
}

View File

@ -97,7 +97,7 @@ public class UsersActivity extends AppCompatActivity implements OnTabSelectedLis
private static final Pattern USERNAME_PATTERN = Pattern.compile("@?\\w{1,15}");
private GlobalSettings settings;
private FilterLoader filterAsync;
private FilterLoader filterLoader;
private FragmentAdapter adapter;
private Toolbar toolbar;
@ -116,16 +116,16 @@ public class UsersActivity extends AppCompatActivity implements OnTabSelectedLis
@Override
protected void onCreate(Bundle savedInst) {
super.onCreate(savedInst);
setContentView(R.layout.page_exclude);
ViewGroup root = findViewById(R.id.page_exclude_root);
toolbar = findViewById(R.id.page_exclude_toolbar);
setContentView(R.layout.page_users);
ViewGroup root = findViewById(R.id.page_users_root);
toolbar = findViewById(R.id.page_users_toolbar);
tabSelector = findViewById(R.id.page_exclude_tab);
viewPager = findViewById(R.id.page_exclude_pager);
viewPager = findViewById(R.id.page_users_pager);
filterAsync = new FilterLoader(this);
filterLoader = new FilterLoader(this);
settings = GlobalSettings.getInstance(this);
adapter = new FragmentAdapter(this);
//pager.setAdapter(adapter);
viewPager.setAdapter(adapter);
mode = getIntent().getIntExtra(KEY_USERS_MODE, 0);
long id = getIntent().getLongExtra(KEY_USERS_ID, 0L);
@ -205,9 +205,9 @@ public class UsersActivity extends AppCompatActivity implements OnTabSelectedLis
AppStyles.setTheme(searchView, Color.TRANSPARENT);
AppStyles.setMenuIconColor(m, settings.getIconColor());
AppStyles.setOverflowIcon(toolbar, settings.getIconColor());
return super.onCreateOptionsMenu(m);
return true;
}
return false;
return super.onCreateOptionsMenu(m);
}
@ -222,20 +222,21 @@ public class UsersActivity extends AppCompatActivity implements OnTabSelectedLis
String hint = getString(R.string.menu_hint_block_user);
searchView.setQueryHint(hint);
}
return super.onPrepareOptionsMenu(m);
return true;
}
return false;
return super.onPrepareOptionsMenu(m);
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (item.getItemId() == R.id.menu_exclude_refresh) {
if (filterAsync.isIdle()) {
if (filterLoader.isIdle()) {
Toast.makeText(getApplicationContext(), R.string.info_refreshing_exclude_list, Toast.LENGTH_SHORT).show();
FilterParam param = new FilterParam(FilterParam.RELOAD);
filterAsync.execute(param, this);
filterLoader.execute(param, this);
}
return true;
}
return super.onOptionsItemSelected(item);
}
@ -252,13 +253,13 @@ public class UsersActivity extends AppCompatActivity implements OnTabSelectedLis
@Override
public boolean onQueryTextSubmit(String query) {
if (USERNAME_PATTERN.matcher(query).matches()) {
if (filterAsync.isIdle()) {
if (filterLoader.isIdle()) {
if (viewPager.getCurrentItem() == 0) {
FilterParam param = new FilterParam(FilterParam.MUTE, query);
filterAsync.execute(param, this);
filterLoader.execute(param, this);
} else if (viewPager.getCurrentItem() == 1) {
FilterParam param = new FilterParam(FilterParam.BLOCK, query);
filterAsync.execute(param, this);
filterLoader.execute(param, this);
}
return true;
}

View File

@ -3,6 +3,7 @@ package org.nuclearfog.twidda.ui.views;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
@ -101,7 +102,12 @@ public class TabSelector extends LinearLayout implements OnClickListener, OnGlob
tabItemView.requestLayout();
}
// set indicator size
LayoutParams params = new LayoutParams(getMeasuredWidth() / Math.max(tabCount, 1), 5);
if (tabCount == 1) {
setHorizontalGravity(Gravity.CENTER_HORIZONTAL);
} else {
setHorizontalGravity(Gravity.START);
}
LayoutParams params = new LayoutParams(getMeasuredWidth() / Math.max(tabCount, 2), 5);
indicator.setLayoutParams(params);
indicator.setBackgroundColor(settings.getHighlightColor());
indicator.requestLayout();

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/page_exclude_root"
android:id="@+id/page_users_root"
android:fitsSystemWindows="true"
android:orientation="vertical"
android:layout_width="match_parent"
@ -9,7 +9,7 @@
tools:context=".ui.activities.UsersActivity">
<androidx.appcompat.widget.Toolbar
android:id="@+id/page_exclude_toolbar"
android:id="@+id/page_users_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
@ -19,7 +19,7 @@
android:layout_height="@dimen/tabselector_height" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/page_exclude_pager"
android:id="@+id/page_users_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:ignore="SpeakableTextPresentCheck" />