Skip to content
This repository has been archived by the owner on Feb 8, 2025. It is now read-only.

Commit

Permalink
bug fix, replaced deprecated methods, dependency update
Browse files Browse the repository at this point in the history
  • Loading branch information
nuclearfog committed Jan 30, 2023
1 parent cf4e21d commit 51cf8da
Show file tree
Hide file tree
Showing 13 changed files with 170 additions and 180 deletions.
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ proguardDictionaries {

dependencies {
implementation 'androidx.appcompat:appcompat:1.6.0'
implementation 'com.google.android.material:material:1.7.0'
implementation 'com.google.android.material:material:1.8.0'
implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.cardview:cardview:1.0.0'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@
import android.view.MenuItem;
import android.view.ViewGroup;

import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
Expand All @@ -24,12 +28,7 @@
*
* @author nuclearfog
*/
public class AccountActivity extends AppCompatActivity {

/**
* request code to start {@link LoginActivity}
*/
private static final int REQUEST_LOGIN = 0xDF14;
public class AccountActivity extends AppCompatActivity implements ActivityResultCallback<ActivityResult> {

/**
* return code to notify that a new account was selected
Expand All @@ -47,6 +46,8 @@ public class AccountActivity extends AppCompatActivity {
*/
public static final String KEY_DISABLE_SELECTOR = "disable-acc-manager";

private ActivityResultLauncher<Intent> activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), this);

private GlobalSettings settings;
private ListFragment fragment;

Expand Down Expand Up @@ -96,28 +97,27 @@ public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (item.getItemId() == R.id.action_add_account) {
// open login page to add new account
Intent loginIntent = new Intent(this, LoginActivity.class);
startActivityForResult(loginIntent, REQUEST_LOGIN);
activityResultLauncher.launch(loginIntent);
return true;
}
return super.onOptionsItemSelected(item);
}


@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_LOGIN) {
// new account registered, reload fragment
if (resultCode == LoginActivity.RETURN_LOGIN_SUCCESSFUL) {
public void onActivityResult(ActivityResult result) {
switch (result.getResultCode()) {
case LoginActivity.RETURN_LOGIN_SUCCESSFUL:
// new account registered, reload fragment
setResult(AccountActivity.RETURN_ACCOUNT_CHANGED);
fragment.reset();
}
// check if setting page was opened and reload theme
else if (resultCode == LoginActivity.RETURN_SETTINGS_CHANGED) {
break;

case LoginActivity.RETURN_SETTINGS_CHANGED:
AppStyles.setTheme(root);
setResult(RETURN_SETTINGS_CHANGED);
fragment.reset();
}
break;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@
import android.widget.Spinner;
import android.widget.Toast;

import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
Expand All @@ -46,28 +50,25 @@
*
* @author nuclearfog
*/
public class LoginActivity extends AppCompatActivity implements OnClickListener, OnItemSelectedListener {
public class LoginActivity extends AppCompatActivity implements ActivityResultCallback<ActivityResult>, OnClickListener, OnItemSelectedListener {

/**
* request code to open {@link AccountActivity}
*/
private static final int REQUEST_ACCOUNT_SELECT = 0x384F;

/**
* request code to open {@link SettingsActivity}
* return code to notify if a login process was successful
*/
private static final int REQUEST_SETTINGS = 0x123;
public static final int RETURN_LOGIN_SUCCESSFUL = 0x145;

/**
* return code to notify if a login process was successful
*/
public static final int RETURN_LOGIN_SUCCESSFUL = 0x145;
public static final int RETURN_LOGIN_CANCELED = 0x2485;

/**
* return code to notify if settings may changed
*/
public static final int RETURN_SETTINGS_CHANGED = 0x227;

private ActivityResultLauncher<Intent> activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), this);

@Nullable
private LoginAction loginAsync;
private GlobalSettings settings;
Expand Down Expand Up @@ -126,7 +127,7 @@ protected void onCreate(@Nullable Bundle b) {
hostSelector.setOnItemSelectedListener(this);

// set default result code
setResult(RESULT_CANCELED);
setResult(RETURN_LOGIN_CANCELED);
}


Expand All @@ -152,30 +153,27 @@ public boolean onOptionsItemSelected(@NonNull MenuItem item) {
// open settings page
if (item.getItemId() == R.id.login_setting) {
Intent intent = new Intent(this, SettingsActivity.class);
startActivityForResult(intent, REQUEST_SETTINGS);
activityResultLauncher.launch(intent);
// notify MainActivity that settings may changed
setResult(RETURN_SETTINGS_CHANGED);
}
// 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);
startActivityForResult(accountManager, REQUEST_ACCOUNT_SELECT);
activityResultLauncher.launch(accountManager);
}
return super.onOptionsItemSelected(item);
}


@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_ACCOUNT_SELECT) {
if (resultCode == AccountActivity.RETURN_ACCOUNT_CHANGED) {
// account selected, return to MainActivity
setResult(RETURN_LOGIN_SUCCESSFUL);
finish();
}
} else if (requestCode == REQUEST_SETTINGS) {
public void onActivityResult(ActivityResult result) {
if (result.getResultCode() == AccountActivity.RETURN_ACCOUNT_CHANGED) {
// account selected, return to MainActivity
setResult(RETURN_LOGIN_SUCCESSFUL);
finish();
} else {
AppStyles.setTheme(root);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
import android.view.ViewGroup;
import android.widget.Toast;

import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
Expand All @@ -39,28 +43,15 @@
*
* @author nuclearfog
*/
public class MainActivity extends AppCompatActivity implements OnTabSelectedListener, OnQueryTextListener {
public class MainActivity extends AppCompatActivity implements ActivityResultCallback<ActivityResult>, OnTabSelectedListener, OnQueryTextListener {

/**
* key used to set the tab page
* vale type is Integer
*/
public static final String KEY_TAB_PAGE = "tab_pos";

/**
* request code to start {@link LoginActivity}
*/
private static final int REQUEST_APP_LOGIN = 0x6A89;

/**
* Request code to start {@link AccountActivity}
*/
private static final int REQUEST_ACCOUNT_CHANGE = 0x345;

/**
* Request code to start {@link SettingsActivity}
*/
private static final int REQUEST_APP_SETTINGS = 0x54AD;
private ActivityResultLauncher<Intent> activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), this);

private FragmentAdapter adapter;
private GlobalSettings settings;
Expand Down Expand Up @@ -108,9 +99,8 @@ protected void onStart() {
super.onStart();
// open login page if there isn't any account selected
if (!settings.isLoggedIn() && loginIntent == null) {
// prevent creating login activity twice
loginIntent = new Intent(this, LoginActivity.class);
startActivityForResult(loginIntent, REQUEST_APP_LOGIN);
activityResultLauncher.launch(loginIntent);
}
// initialize lists
else if (adapter.isEmpty()) {
Expand All @@ -133,42 +123,29 @@ protected void onDestroy() {


@Override
protected void onActivityResult(int reqCode, int returnCode, @Nullable Intent intent) {
super.onActivityResult(reqCode, returnCode, intent);
switch (reqCode) {
case REQUEST_APP_LOGIN:
// check if app login cancelled
if (returnCode == RESULT_CANCELED) {
finish();
}
// check if account changed
else if (returnCode == LoginActivity.RETURN_LOGIN_SUCCESSFUL) {
setupAdapter(true);
}
public void onActivityResult(ActivityResult result) {
switch (result.getResultCode()) {
case LoginActivity.RETURN_LOGIN_CANCELED:
finish();
break;

case LoginActivity.RETURN_LOGIN_SUCCESSFUL:
case AccountActivity.RETURN_ACCOUNT_CHANGED:
setupAdapter(true);
break;

case REQUEST_ACCOUNT_CHANGE:
// check if account or theme changed
if (returnCode == AccountActivity.RETURN_SETTINGS_CHANGED) {
adapter.notifySettingsChanged();
}
// check if a new account is selected
else if (returnCode == AccountActivity.RETURN_ACCOUNT_CHANGED) {
setupAdapter(true);
}
case SettingsActivity.RETURN_APP_LOGOUT:
adapter.clear();
pager.setAdapter(adapter);
loginIntent = new Intent(this, LoginActivity.class);
activityResultLauncher.launch(loginIntent);
break;

case REQUEST_APP_SETTINGS:
// check if current login is closed
if (returnCode == SettingsActivity.RETURN_APP_LOGOUT) {
adapter.clear();
pager.setAdapter(adapter);
}
// reset fragments to apply changes
else {
adapter.notifySettingsChanged();
setupAdapter(false);
}
default:
case SettingsActivity.RETURN_SETTINGS_CHANGED:
case AccountActivity.RETURN_SETTINGS_CHANGED:
adapter.notifySettingsChanged();
setupAdapter(false);
break;
}
}
Expand Down Expand Up @@ -201,7 +178,7 @@ else if (item.getItemId() == R.id.menu_post) {
// open app settings
else if (item.getItemId() == R.id.menu_settings) {
Intent settings = new Intent(this, SettingsActivity.class);
startActivityForResult(settings, REQUEST_APP_SETTINGS);
activityResultLauncher.launch(settings);
}
// theme expanded search view
else if (item.getItemId() == R.id.menu_search) {
Expand All @@ -216,7 +193,7 @@ else if (item.getItemId() == R.id.menu_message) {
// open account manager
else if (item.getItemId() == R.id.menu_account) {
Intent accountManager = new Intent(this, AccountActivity.class);
startActivityForResult(accountManager, REQUEST_ACCOUNT_CHANGE);
activityResultLauncher.launch(accountManager);
}
return super.onOptionsItemSelected(item);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,7 @@ private void openMediaPicker(int requestCode) {
break;
}
try {
// todo replace this
startActivityForResult(mediaSelect, requestCode);
} catch (ActivityNotFoundException err) {
Toast.makeText(getApplicationContext(), R.string.error_no_media_app, LENGTH_SHORT).show();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@
import android.widget.TextView;
import android.widget.Toast;

import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
Expand Down Expand Up @@ -77,8 +81,8 @@
*
* @author nuclearfog
*/
public class ProfileActivity extends AppCompatActivity implements OnClickListener, OnTagClickListener,
OnTabSelectedListener, OnConfirmListener, Callback {
public class ProfileActivity extends AppCompatActivity implements ActivityResultCallback<ActivityResult>,
OnClickListener, OnTagClickListener, OnTabSelectedListener, OnConfirmListener, Callback {

/**
* Key for the user ID
Expand Down Expand Up @@ -110,11 +114,6 @@ public class ProfileActivity extends AppCompatActivity implements OnClickListene
*/
public static final String KEY_USER_UPDATE = "user_update";

/**
* request code for {@link ProfileEditor}
*/
public static final int REQUEST_PROFILE_CHANGED = 0x322F;

/**
* Return code to update user information
*/
Expand All @@ -130,6 +129,8 @@ public class ProfileActivity extends AppCompatActivity implements OnClickListene
*/
public static final int TOOLBAR_TRANSPARENCY = 0x5fffffff;

private ActivityResultLauncher<Intent> activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), this);

private FragmentAdapter adapter;
private GlobalSettings settings;
private UserAction profileAsync;
Expand Down Expand Up @@ -283,11 +284,10 @@ protected void onDestroy() {


@Override
public void onActivityResult(int reqCode, int returnCode, @Nullable Intent i) {
super.onActivityResult(reqCode, returnCode, i);
if (i != null && reqCode == REQUEST_PROFILE_CHANGED) {
if (returnCode == ProfileEditor.RETURN_PROFILE_CHANGED) {
Object data = i.getSerializableExtra(ProfileEditor.KEY_UPDATED_PROFILE);
public void onActivityResult(ActivityResult result) {
if (result.getData() != null) {
if (result.getResultCode() == ProfileEditor.RETURN_PROFILE_CHANGED) {
Object data = result.getData().getSerializableExtra(ProfileEditor.KEY_UPDATED_PROFILE);
if (data instanceof User) {
// remove blur background
toolbarBackground.setImageResource(0);
Expand Down Expand Up @@ -424,7 +424,7 @@ else if (item.getItemId() == R.id.profile_block) {
else if (item.getItemId() == R.id.profile_settings) {
Intent editProfile = new Intent(this, ProfileEditor.class);
editProfile.putExtra(ProfileEditor.KEY_PROFILE_DATA, user);
startActivityForResult(editProfile, REQUEST_PROFILE_CHANGED);
activityResultLauncher.launch(editProfile);
}
// open direct message
else if (item.getItemId() == R.id.profile_message) {
Expand Down
Loading

0 comments on commit 51cf8da

Please sign in to comment.