Merge pull request #637 from andrewlord1990/404_jump_to_tab_for_creating_task_type

After creating a new task, switch to the tab of that type.
This commit is contained in:
Phillip Thelen 2016-10-04 13:46:38 +02:00 committed by GitHub
commit ec95e64802
3 changed files with 44 additions and 20 deletions

View file

@ -627,7 +627,7 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
//noinspection SimplifiableIfStatement
if (id == R.id.action_save_changes) {
finishActivitySuccessfuly();
finishActivitySuccessfully();
return true;
}
@ -844,7 +844,6 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
}
private void prepareSave() {
if (this.task == null) {
this.task = new Task();
this.task.setType(taskType);
@ -885,12 +884,19 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
dismissKeyboard();
}
private void finishActivitySuccessfuly() {
private void finishActivitySuccessfully() {
this.prepareSave();
finish();
finishWithSuccess();
dismissKeyboard();
}
private void finishWithSuccess() {
Intent resultIntent = new Intent();
resultIntent.putExtra(TaskFormActivity.TASK_TYPE_KEY, taskType);
setResult(RESULT_OK, resultIntent);
finish();
}
private void dismissKeyboard() {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
View currentFocus = getCurrentFocus();

View file

@ -1,8 +1,17 @@
package com.habitrpg.android.habitica.ui.fragments.tasks;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.helper.ItemTouchHelper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.habitrpg.android.habitica.APIHelper;
import com.habitrpg.android.habitica.R;
import com.habitrpg.android.habitica.callbacks.HabitRPGUserCallback;
import com.habitrpg.android.habitica.components.AppComponent;
import com.habitrpg.android.habitica.events.commands.AddNewTaskCommand;
import com.habitrpg.android.habitica.helpers.TagsHelper;
@ -21,21 +30,6 @@ import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task;
import org.greenrobot.eventbus.EventBus;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.helper.ItemTouchHelper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.inject.Inject;
import javax.inject.Named;
@ -229,4 +223,8 @@ public class TaskRecyclerViewFragment extends BaseFragment implements View.OnCli
public String getDisplayedClassName() {
return this.classType + super.getDisplayedClassName();
}
String getClassName() {
return classType;
}
}

View file

@ -47,6 +47,7 @@ import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
@ -582,14 +583,33 @@ public class TasksFragment extends BaseMainFragment implements OnCheckedChangeLi
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case (TASK_CREATED_RESULT):
this.displayingTaskForm = false;
onTaskCreatedResult(resultCode, data);
break;
case (TASK_UPDATED_RESULT):
this.displayingTaskForm = false;
break;
}
}
private void onTaskCreatedResult(int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
String taskType = data.getStringExtra(TaskFormActivity.TASK_TYPE_KEY);
switchToTaskTab(taskType);
}
}
private void switchToTaskTab(String taskType) {
for (Map.Entry<Integer, TaskRecyclerViewFragment> tabEntry : ViewFragmentsDictionary.entrySet()) {
if (tabEntry.getValue().getClassName().equals(taskType)) {
viewPager.setCurrentItem(tabEntry.getKey());
}
}
}
@Override
public String getDisplayedClassName() {
return null;