Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #11056 from t895/new-bars
Android: Add more top app bars
  • Loading branch information
JosJuice committed Sep 13, 2022
2 parents 7f450f1 + 8c47785 commit 351ebe6
Show file tree
Hide file tree
Showing 8 changed files with 495 additions and 316 deletions.
Expand Up @@ -8,6 +8,9 @@

import androidx.appcompat.app.AppCompatActivity;

import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.google.android.material.appbar.MaterialToolbar;

import org.dolphinemu.dolphinemu.R;
import org.dolphinemu.dolphinemu.fragments.ConvertFragment;
import org.dolphinemu.dolphinemu.utils.ThemeHelper;
Expand Down Expand Up @@ -41,5 +44,18 @@ protected void onCreate(Bundle savedInstanceState)
fragment = ConvertFragment.newInstance(path);
getSupportFragmentManager().beginTransaction().add(R.id.fragment_convert, fragment).commit();
}

MaterialToolbar tb = findViewById(R.id.toolbar_convert);
CollapsingToolbarLayout ctb = findViewById(R.id.toolbar_convert_layout);
ctb.setTitle(getString(R.string.convert_convert));
setSupportActionBar(tb);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

@Override
public boolean onSupportNavigateUp()
{
onBackPressed();
return true;
}
}
Expand Up @@ -12,6 +12,9 @@
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.google.android.material.appbar.MaterialToolbar;

import org.dolphinemu.dolphinemu.R;
import org.dolphinemu.dolphinemu.activities.EmulationActivity;
import org.dolphinemu.dolphinemu.features.riivolution.model.RiivolutionPatches;
Expand Down Expand Up @@ -77,6 +80,12 @@ protected void onCreate(Bundle savedInstanceState)
patches.loadConfig();
runOnUiThread(() -> populateList(patches));
}).start();

MaterialToolbar tb = findViewById(R.id.toolbar_riivolution);
CollapsingToolbarLayout ctb = findViewById(R.id.toolbar_riivolution_layout);
ctb.setTitle(getString(R.string.riivolution_riivolution));
setSupportActionBar(tb);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

@Override
Expand All @@ -88,6 +97,13 @@ protected void onStop()
mPatches.saveConfig();
}

@Override
public boolean onSupportNavigateUp()
{
onBackPressed();
return true;
}

private void populateList(RiivolutionPatches patches)
{
mPatches = patches;
Expand Down
235 changes: 127 additions & 108 deletions Source/Android/app/src/main/res/layout-land/activity_user_data.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
Expand All @@ -10,116 +10,135 @@
android:id="@+id/appbar_user_data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
android:layout_alignParentTop="true"
app:elevation="0dp">

<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar_user_data"
<com.google.android.material.appbar.CollapsingToolbarLayout
style="?attr/collapsingToolbarLayoutMediumStyle"
android:id="@+id/toolbar_user_data_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorSurface" />
android:layout_height="?attr/collapsingToolbarLayoutMediumSize"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">

<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar_user_data"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorSurface"
app:layout_collapseMode="pin"
app:elevation="0dp" />

</com.google.android.material.appbar.CollapsingToolbarLayout>

</com.google.android.material.appbar.AppBarLayout>

<TextView
android:id="@+id/text_type"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/spacing_medlarge"
app:layout_constraintBottom_toTopOf="@id/text_path"
app:layout_constraintEnd_toStartOf="@id/divider"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/appbar_user_data"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintWidth_max="400dp"
tools:text="@string/user_data_new_location" />

<TextView
android:id="@+id/text_path"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/spacing_medlarge"
tools:text="/storage/emulated/0/Android/data/org.dolphinemu.dolphinemu/files"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/divider"
app:layout_constraintTop_toBottomOf="@id/text_type"
app:layout_constraintBottom_toTopOf="@id/text_android_11"
app:layout_constraintWidth_max="400dp" />

<TextView
android:id="@+id/text_android_11"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/spacing_medlarge"
android:text="@string/user_data_new_location_android_11"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/divider"
app:layout_constraintTop_toBottomOf="@id/text_path"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintWidth_max="400dp" />

<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="end"
app:constraint_referenced_ids="text_type,text_path,text_android_11" />

<View
android:id="@+id/divider"
android:layout_width="1dp"
android:layout_height="0dp"
android:background="#1F000000"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/barrier_text"
app:layout_constraintEnd_toStartOf="@id/barrier_buttons" />

<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier_buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="start"
app:constraint_referenced_ids="button_open_system_file_manager,button_import_user_data,button_export_user_data" />
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">

<Button
android:id="@+id/button_open_system_file_manager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/spacing_small"
android:text="@string/user_data_open_system_file_manager"
app:layout_constraintBottom_toTopOf="@id/button_import_user_data"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/barrier_text"
app:layout_constraintTop_toBottomOf="@+id/appbar_user_data"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintWidth_max="400dp" />

<Button
android:id="@+id/button_import_user_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/spacing_small"
android:text="@string/user_data_import"
app:layout_constraintStart_toEndOf="@id/barrier_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/button_open_system_file_manager"
app:layout_constraintBottom_toTopOf="@id/button_export_user_data"
app:layout_constraintWidth_max="400dp" />

<Button
android:id="@+id/button_export_user_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/spacing_small"
android:text="@string/user_data_export"
app:layout_constraintStart_toEndOf="@id/barrier_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/button_import_user_data"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintWidth_max="400dp" />

</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="16dp">

<TextView
android:id="@+id/text_type"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/text_path"
app:layout_constraintWidth_max="400dp"
app:layout_constraintEnd_toStartOf="@id/divider"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/divider"
tools:text="@string/user_data_new_location" />

<TextView
android:id="@+id/text_path"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
tools:text="/storage/emulated/0/Android/data/org.dolphinemu.dolphinemu/files"
app:layout_constraintWidth_max="400dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/divider"
app:layout_constraintTop_toBottomOf="@id/text_type"
app:layout_constraintBottom_toTopOf="@id/text_android_11" />

<TextView
android:id="@+id/text_android_11"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/user_data_new_location_android_11"
app:layout_constraintWidth_max="400dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/divider"
app:layout_constraintTop_toBottomOf="@id/text_path"
app:layout_constraintBottom_toBottomOf="parent" />

<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="end"
app:constraint_referenced_ids="text_type,text_path,text_android_11" />

<View
android:id="@+id/divider"
android:layout_width="1dp"
android:layout_height="0dp"
android:background="#1F000000"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/barrier_text"
app:layout_constraintEnd_toStartOf="@id/barrier_buttons" />

<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier_buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="start"
app:constraint_referenced_ids="button_open_system_file_manager,button_import_user_data,button_export_user_data" />

<Button
android:id="@+id/button_open_system_file_manager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/spacing_small"
android:text="@string/user_data_open_system_file_manager"
app:layout_constraintBottom_toTopOf="@id/button_import_user_data"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/barrier_text"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />

<Button
android:id="@+id/button_import_user_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/spacing_small"
android:text="@string/user_data_import"
app:layout_constraintStart_toEndOf="@id/barrier_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/button_open_system_file_manager"
app:layout_constraintBottom_toTopOf="@id/button_export_user_data" />

<Button
android:id="@+id/button_export_user_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/spacing_small"
android:text="@string/user_data_export"
app:layout_constraintStart_toEndOf="@id/barrier_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/button_import_user_data"
app:layout_constraintBottom_toBottomOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

</androidx.core.widget.NestedScrollView>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

0 comments on commit 351ebe6

Please sign in to comment.