Notification improvements (#1175)
* Stop showing notification list when going from notification's content to related content * Add is_app_readable parameter to notification_list call * Return current fragment on main activity
This commit is contained in:
parent
3f5104d60a
commit
6e32f7724f
3 changed files with 19 additions and 11 deletions
|
@ -2781,15 +2781,7 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
|
|||
}
|
||||
|
||||
private Fragment getCurrentFragment() {
|
||||
int backCount = getSupportFragmentManager().getBackStackEntryCount();
|
||||
if (backCount > 0) {
|
||||
try {
|
||||
return getSupportFragmentManager().getFragments().get(backCount - 1);
|
||||
} catch (IndexOutOfBoundsException ex) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
return getSupportFragmentManager().findFragmentById(R.id.content_main);
|
||||
}
|
||||
|
||||
public void hideActionBar() {
|
||||
|
@ -3495,6 +3487,18 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
|
|||
return;
|
||||
}
|
||||
|
||||
if (currentFragment != null && ((BaseFragment) currentFragment).getParams() != null
|
||||
&& ((BaseFragment) currentFragment).getParams().containsKey("source")
|
||||
&& ((BaseFragment) currentFragment).getParams().get("source").equals("notification")) {
|
||||
|
||||
Map<String, Object> currentParams = new HashMap<>(1);
|
||||
|
||||
if (((BaseFragment) currentFragment).getParams().containsKey("url"))
|
||||
currentParams.put("url", ((BaseFragment) currentFragment).getParams().get("url"));
|
||||
|
||||
((BaseFragment) currentFragment).setParams(currentParams);
|
||||
}
|
||||
|
||||
//fragment.setRetainInstance(true);
|
||||
FragmentManager manager = getSupportFragmentManager();
|
||||
FragmentTransaction transaction = manager.beginTransaction().replace(R.id.content_main, fragment);
|
||||
|
|
|
@ -16,8 +16,10 @@ import java.text.ParseException;
|
|||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import io.lbry.browser.MainActivity;
|
||||
import io.lbry.browser.data.DatabaseHelper;
|
||||
|
@ -47,7 +49,9 @@ public class NotificationListTask extends AsyncTask<Void, Void, List<LbryNotific
|
|||
List<LbryNotification> notifications = new ArrayList<>();
|
||||
SQLiteDatabase db = null;
|
||||
try {
|
||||
JSONArray array = (JSONArray) Lbryio.parseResponse(Lbryio.call("notification", "list", context));
|
||||
Map<String, String> parameters = new HashMap<>(1);
|
||||
parameters.put("is_app_readable", "true");
|
||||
JSONArray array = (JSONArray) Lbryio.parseResponse(Lbryio.call("notification", "list", parameters, context));
|
||||
if (array != null) {
|
||||
for (int i = 0; i < array.length(); i++) {
|
||||
JSONObject item = array.getJSONObject(i);
|
||||
|
|
|
@ -64,7 +64,7 @@ public class BaseFragment extends Fragment {
|
|||
}
|
||||
}
|
||||
|
||||
if (params != null && params.containsKey("source") && "notification".equalsIgnoreCase(params.get("source").toString())) {
|
||||
if (params != null && params.containsKey("source") && params.get("source") != null && "notification".equalsIgnoreCase(params.get("source").toString())) {
|
||||
Context context = getContext();
|
||||
if (context instanceof MainActivity) {
|
||||
((MainActivity) context).navigateBackToNotifications();
|
||||
|
|
Loading…
Reference in a new issue