TaskListsDialogFragment showing correctly

This commit is contained in:
2017-12-14 22:50:16 +01:00
parent 0fefe50ec9
commit 4d05e1d33f
11 changed files with 50 additions and 96 deletions

View File

@@ -34,14 +34,6 @@
android:name="android.support.PARENT_ACTIVITY"
android:value=".activities.MainActivity" />
</activity>
<activity
android:name=".activities.TaskListActivity"
android:label="@string/action_editTabs"
android:parentActivityName=".activities.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activities.MainActivity" />
</activity>
<activity
android:name=".activities.AboutActivity"
android:label="@string/action_about"

View File

@@ -5,7 +5,6 @@ import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
@@ -15,7 +14,7 @@ import android.view.View;
import com.wismna.geoffroy.donext.R;
import com.wismna.geoffroy.donext.fragments.MainFragment;
import com.wismna.geoffroy.donext.fragments.TaskFormDialogFragment;
import com.wismna.geoffroy.donext.fragments.TaskListsFragment;
import com.wismna.geoffroy.donext.fragments.TaskListsDialogFragment;
import com.wismna.geoffroy.donext.fragments.TasksFragment;
/**
@@ -81,10 +80,8 @@ public class MainActivity extends AppCompatActivity {
/** Called when the user clicks the Edit Lists button */
public void openTaskLists(MenuItem menuItem) {
/*Intent intent = new Intent(this, TaskListActivity.class);
startActivity(intent);*/
// Create the fragment
TaskListsFragment taskListFragment = new TaskListsFragment();
TaskListsDialogFragment taskListFragment = new TaskListsDialogFragment();
String title = getString(R.string.action_edit_task);
FragmentManager fragmentManager = getSupportFragmentManager();
@@ -94,18 +91,7 @@ public class MainActivity extends AppCompatActivity {
args.putString("button_negative", getString(R.string.task_list_ok));
taskListFragment.setArguments(args);
if (getResources().getBoolean(R.bool.large_layout))
taskListFragment.show(fragmentManager, title);
else {
// The device is smaller, so show the fragment fullscreen
FragmentTransaction transaction = fragmentManager.beginTransaction();
// For a little polish, specify a transition animation
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
// To make it fullscreen, use the 'content' root view as the container
// for the fragment, which is always the root view for the activity
transaction.add(android.R.id.content, taskListFragment, title)
.addToBackStack(null).commit();
}
taskListFragment.showFragment(fragmentManager, title, getResources().getBoolean(R.bool.large_layout));
}
/** Called when the user clicks the History button*/
@@ -131,6 +117,7 @@ public class MainActivity extends AppCompatActivity {
MainFragment fragment = getMainFragment();
ViewPager viewPager = fragment.getViewPager();
if (viewPager == null) return;
int currentTabPosition = viewPager.getCurrentItem();
MainFragment.SectionsPagerAdapter pagerAdapter = (MainFragment.SectionsPagerAdapter) viewPager.getAdapter();
TaskFormDialogFragment taskDialogFragment = TaskFormDialogFragment.newInstance(null,
@@ -150,18 +137,8 @@ public class MainActivity extends AppCompatActivity {
String title = getString(R.string.action_new_task);
FragmentManager fragmentManager = getSupportFragmentManager();
if (getResources().getBoolean(R.bool.large_layout))
taskDialogFragment.show(fragmentManager, title);
else {
// The device is smaller, so show the fragment fullscreen
FragmentTransaction transaction = fragmentManager.beginTransaction();
// For a little polish, specify a transition animation
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
// To make it fullscreen, use the 'content' root view as the container
// for the fragment, which is always the root view for the activity
transaction.add(android.R.id.content, taskDialogFragment, title)
.addToBackStack(null).commit();
}
taskDialogFragment.showFragment(fragmentManager, title, getResources().getBoolean(R.bool.large_layout));
}
private MainFragment getMainFragment(){

View File

@@ -1,14 +0,0 @@
package com.wismna.geoffroy.donext.activities;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.wismna.geoffroy.donext.R;
public class TaskListActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tasklists);
}
}

View File

@@ -5,7 +5,6 @@ import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.RecyclerView;
@@ -74,18 +73,8 @@ public class TodayActivity extends AppCompatActivity
String title = getString(R.string.action_today_select);
FragmentManager fragmentManager = getSupportFragmentManager();
if (isLargeLayout)
taskDialogFragment.show(fragmentManager, title);
else {
// The device is smaller, so show the fragment fullscreen
FragmentTransaction transaction = fragmentManager.beginTransaction();
// For a little polish, specify a transition animation
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
// To make it fullscreen, use the 'content' root view as the container
// for the fragment, which is always the root view for the activity
transaction.add(android.R.id.content, taskDialogFragment, title)
.addToBackStack(null).commit();
}
taskDialogFragment.showFragment(fragmentManager, title, getResources().getBoolean(R.bool.large_layout));
}
@Override

View File

@@ -9,6 +9,8 @@ import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
@@ -168,6 +170,22 @@ public abstract class DynamicDialogFragment extends DialogFragment {
super.onDestroyView();
}
public void showFragment(FragmentManager fragmentManager, String title, boolean isLargeLayout)
{
if (isLargeLayout)
show(fragmentManager, title);
else {
// The device is smaller, so show the fragment fullscreen
FragmentTransaction transaction = fragmentManager.beginTransaction();
// For a little polish, specify a transition animation
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
// To make it fullscreen, use the 'content' root view as the container
// for the fragment, which is always the root view for the activity
transaction.add(android.R.id.content, this, title)
.addToBackStack(null).commit();
}
}
/** Helper function to get a View, without having to worry about the fact that is a Dialog or not*/
protected View findViewById(int id) {
if (getShowsDialog()) return getDialog().findViewById(id);

View File

@@ -1,6 +1,5 @@
package com.wismna.geoffroy.donext.fragments;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Point;
import android.os.Build;
@@ -22,7 +21,6 @@ import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.wismna.geoffroy.donext.R;
import com.wismna.geoffroy.donext.activities.TaskListActivity;
import com.wismna.geoffroy.donext.adapters.SmartFragmentStatePagerAdapter;
import com.wismna.geoffroy.donext.adapters.TaskRecyclerViewAdapter;
import com.wismna.geoffroy.donext.dao.Task;
@@ -102,8 +100,17 @@ public class MainFragment extends Fragment implements TasksFragment.TaskChangedA
mSectionsPagerAdapter.notifyDataSetChanged();
}
if (taskLists.size() == 0) {
Intent intent = new Intent(getContext(), TaskListActivity.class);
//startActivity(intent);
TaskListsDialogFragment taskListFragment = new TaskListsDialogFragment();
String title = getString(R.string.task_list_no_lists);
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
// Set the arguments
Bundle args = new Bundle();
args.putInt("button_count", 1);
args.putString("button_negative", getString(R.string.task_list_ok));
taskListFragment.setArguments(args);
taskListFragment.showFragment(fragmentManager, title, getResources().getBoolean(R.bool.large_layout));
}
else {
int lastOpenedList = sharedPref.getInt("last_opened_tab", 0);

View File

@@ -27,7 +27,7 @@ import java.util.List;
/**
* A fragment representing a list of Items.
*/
public class TaskListsFragment extends DynamicDialogFragment implements
public class TaskListsDialogFragment extends DynamicDialogFragment implements
TaskListRecyclerViewAdapter.TaskListRecyclerViewAdapterListener,
ConfirmDialogFragment.ConfirmDialogListener {
private TaskListRecyclerViewAdapter taskListRecyclerViewAdapter;
@@ -39,7 +39,7 @@ public class TaskListsFragment extends DynamicDialogFragment implements
* Mandatory empty constructor for the fragment manager to instantiate the
* fragment (e.g. upon screen orientation changes).
*/
public TaskListsFragment() {
public TaskListsDialogFragment() {
}
@Override
@@ -51,7 +51,7 @@ public class TaskListsFragment extends DynamicDialogFragment implements
mButtonCount = args.getInt("button_count");
}
mContentLayoutId = R.layout.fragment_tasklists;
mContentLayoutId = R.layout.content_tasklists;
taskListDataAccess = new TaskListDataAccess(getContext(), TaskListDataAccess.MODE.WRITE);
new GetTaskListsTask().execute(taskListDataAccess);
}
@@ -60,7 +60,7 @@ public class TaskListsFragment extends DynamicDialogFragment implements
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.fragment_tasklists, container, false);
mView = inflater.inflate(R.layout.content_tasklists, container, false);
Button createTaskListButton = mView.findViewById(R.id.new_task_list_button);
createTaskListButton.setOnClickListener(new View.OnClickListener() {
@@ -111,17 +111,17 @@ public class TaskListsFragment extends DynamicDialogFragment implements
@Override
protected void onPositiveButtonClick(View view) {
// Not implemented
}
@Override
protected void onNeutralButtonClick(View view) {
// Not implemented
}
@Override
protected void onNegativeButtonClick() {
// TODO: close fragment
}
@Override
@@ -234,7 +234,7 @@ public class TaskListsFragment extends DynamicDialogFragment implements
protected void onPostExecute(List<TaskList> taskLists) {
super.onPostExecute(taskLists);
taskListRecyclerViewAdapter =
new TaskListRecyclerViewAdapter(taskLists, TaskListsFragment.this);
new TaskListRecyclerViewAdapter(taskLists, TaskListsDialogFragment.this);
// Set the adapter
Context context = getContext();

View File

@@ -1,14 +0,0 @@
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".activities.TaskListActivity">
<fragment
android:name="com.wismna.geoffroy.donext.fragments.TaskListsFragment"
android:id="@+id/fragment_task_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:layout="@layout/fragment_tasklists" />
</LinearLayout>

View File

@@ -10,8 +10,8 @@
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".activities.TaskListActivity">
android:background="@android:color/background_light"
android:orientation="vertical">
<LinearLayout
android:id="@+id/new_task_list_layout"
android:layout_width="match_parent"
@@ -41,7 +41,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutManager="LinearLayoutManager"
tools:context=".fragments.TaskListsFragment"
tools:context=".fragments.TaskListsDialogFragment"
tools:listitem="@layout/fragment_tasklist" />
</LinearLayout>

View File

@@ -45,6 +45,7 @@
<string name="task_list_new_list_create">Créer</string>
<string name="task_list_new_list_error">Le nom de la liste ne peut pas être vide</string>
<string name="task_list_new_list_hint">Nom de la liste</string>
<string name="task_list_no_lists">Créer une nouvelle liste de tâches</string>
<string name="task_no_tasks">Super! Aucune tâche en cours!</string>
<string name="settings_today_title">Vue Aujourd\'hui</string>
<string name="settings_today_enable">Activer la vue Aujourd\'hui?</string>

View File

@@ -19,6 +19,7 @@
<string name="task_list_delete">Delete</string>
<string name="task_list_confirmation_delete">Delete task list?</string>
<string name="task_list_drag_handle">Drag handle</string>
<string name="task_list_no_lists">Create a new task list</string>
<!-- Strings related to new task dialog -->
<string name="new_task_list">List</string>
@@ -79,8 +80,5 @@
<string name="incompatible_sdk_version">Sorry, your Android version is not supported.</string>
<string name="action_history">History</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
<string name="title_activity_main2">Main2Activity</string>
<string name="task_list_ok">OK</string>
</resources>