Skip to content

Commit

Permalink
Implement navigation bar activity for sample
Browse files Browse the repository at this point in the history
  • Loading branch information
pranavpandey committed Jun 17, 2022
1 parent 71d678f commit 9701c64
Show file tree
Hide file tree
Showing 12 changed files with 94 additions and 152 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ dependencies {
## Usage
It is a collection of activities, fragments, widgets, views and some utility functions required
to build a standard Android app. It also provides some in-built use cases like an intro screen,
drawer activity, about screen, collapsing app bar, bottom navigation, color picker, multiple
drawer activity, about screen, collapsing app bar, navigation bar view, color picker, multiple
locales, runtime permissions, etc. which can be used and customised according to the need.

> For complete reference, please read the [documentation][documentation].
Expand Down
2 changes: 1 addition & 1 deletion sample/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
android:launchMode="singleTop" />

<activity
android:name=".activity.BottomNavigationActivity"
android:name=".activity.NavigationBarActivity"
android:label="@string/collapsing_app_bar"
android:launchMode="singleTop" />

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
/*
* Copyright 2018-2022 Pranav Pandey
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.pranavpandey.android.dynamic.support.sample.activity

import android.os.Bundle
import com.pranavpandey.android.dynamic.support.activity.DynamicNavigationActivity
import com.pranavpandey.android.dynamic.support.sample.R
import com.pranavpandey.android.dynamic.support.sample.controller.Constants
import com.pranavpandey.android.dynamic.support.sample.fragment.AboutFragment
import com.pranavpandey.android.dynamic.support.sample.fragment.HomeFragment
import com.pranavpandey.android.dynamic.support.sample.fragment.SettingsFragment
import com.pranavpandey.android.dynamic.util.DynamicLinkUtils

/**
* Implementing a responsive navigation bar by using [DynamicNavigationActivity].
*/
class NavigationBarActivity : DynamicNavigationActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

// TODO: Set app bar title.
setTitle(R.string.app_name)

// TODO: Inflate menu for the navigation bar view.
setNavigationBarViewMenu(R.menu.menu_navigation_bar)

// Set floating action button to view sources on GitHub.
setFAB(R.drawable.ads_ic_social_github, fabVisibility) {
DynamicLinkUtils.viewUrl(this@NavigationBarActivity, Constants.URL_GITHUB)
}

// Select home fragment.
if (contentFragment == null) {
onNavigationItemSelected(R.id.nav_home, false)
}
}

// TODO: Set a navigation item selected listener for the navigation bar view.
override fun onNavigationItemSelected(itemId: Int, restore: Boolean) {
super.onNavigationItemSelected(itemId, restore)

when (itemId) {
R.id.nav_home -> if (contentFragment !is HomeFragment) {
switchFragment(HomeFragment.newInstance(), false)
}
R.id.nav_settings -> if (contentFragment !is SettingsFragment) {
switchFragment(SettingsFragment.newInstance(0), false)
}
R.id.nav_about -> if (contentFragment !is AboutFragment) {
switchFragment(AboutFragment.newInstance(0), false)
}
}

// Show floating action button after switching the fragment.
showFAB()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,8 @@ class AboutFragment : DynamicViewPager2Fragment() {
}

override fun getNavigationViewId(): Int {
// Return the bottom navigation view id.
return R.id.bottom_navigation
// Return the navigation bar view id.
return R.id.ads_navigation_bar_view
}

override fun getCheckedMenuItemId(): Int {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ import com.google.android.material.appbar.AppBarLayout
import com.pranavpandey.android.dynamic.support.activity.DynamicDrawerActivity
import com.pranavpandey.android.dynamic.support.fragment.DynamicFragment
import com.pranavpandey.android.dynamic.support.sample.R
import com.pranavpandey.android.dynamic.support.sample.activity.BottomNavigationActivity
import com.pranavpandey.android.dynamic.support.sample.activity.CollapsingAppBarActivity
import com.pranavpandey.android.dynamic.support.sample.activity.NavigationBarActivity
import com.pranavpandey.android.dynamic.support.sample.activity.TutorialActivity
import com.pranavpandey.android.dynamic.support.sample.controller.Constants
import com.pranavpandey.android.dynamic.support.setting.base.DynamicScreenPreference
Expand Down Expand Up @@ -58,8 +58,8 @@ class HomeFragment : DynamicFragment() {
}

override fun getNavigationViewId(): Int {
// Return the bottom navigation view id.
return R.id.bottom_navigation
// Return the navigation bar view id.
return R.id.ads_navigation_bar_view
}

override fun getCheckedMenuItemId(): Int {
Expand Down Expand Up @@ -137,15 +137,15 @@ class HomeFragment : DynamicFragment() {
}

if (activity is DynamicDrawerActivity ) {
// Start bottom navigation activity.
(view.findViewById<View>(R.id.pref_bottom_navigation)
// Start navigation bar activity.
(view.findViewById<View>(R.id.pref_navigation_bar)
as DynamicScreenPreference).onPreferenceClickListener =
View.OnClickListener {
startActivity(Intent(activity, BottomNavigationActivity::class.java))
startActivity(Intent(activity, NavigationBarActivity::class.java))
}
} else {
// Hide bottom navigation activity.
view.findViewById<View>(R.id.pref_bottom_navigation).visibility = View.GONE
// Hide navigation bar activity.
view.findViewById<View>(R.id.pref_navigation_bar).visibility = View.GONE
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ class SettingsFragment : DynamicViewPager2Fragment() {
}

override fun getNavigationViewId(): Int {
// Return the bottom navigation view id.
return R.id.bottom_navigation
// Return the navigation bar view id.
return R.id.ads_navigation_bar_view
}

override fun getCheckedMenuItemId(): Int {
Expand Down
8 changes: 4 additions & 4 deletions sample/src/main/res/layout/fragment_home.xml
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,12 @@
app:ads_summary="@string/collapsing_app_bar_subtitle" />

<com.pranavpandey.android.dynamic.support.setting.base.DynamicScreenPreference
android:id="@+id/pref_bottom_navigation"
android:id="@+id/pref_navigation_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:ads_icon="@drawable/ic_bottom_navigation"
app:ads_title="@string/bottom_navigation"
app:ads_summary="@string/bottom_navigation_subtitle" />
app:ads_icon="@drawable/ic_navigation_bar"
app:ads_title="@string/navigation_bar"
app:ads_summary="@string/navigation_bar_subtitle" />

</LinearLayout>

Expand Down
22 changes: 0 additions & 22 deletions sample/src/main/res/layout/layout_bottom_navigation.xml

This file was deleted.

8 changes: 4 additions & 4 deletions sample/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,17 @@
<string name="tutorial">Tutorial</string>
<string name="tutorial_sample">Sample Tutorial</string>
<string name="tutorial_activity">Tutorial activity</string>
<string name="tutorial_activity_subtitle">An intro screen by using dynamic tutorial activity.</string>
<string name="tutorial_activity_subtitle">An intro screen by using the dynamic tutorial activity.</string>
<string name="tutorial_welcome">@string/app_name</string>
<string name="tutorial_welcome_subtitle">@string/app_subtitle</string>
<string name="tutorial_welcome_desc">A complete library to build apps for Android 4.0 (API 14) and above with a built-in theme engine.</string>
<string name="tutorial_finish">Thank you!</string>
<string name="tutorial_finish_subtitle">Checkout the sources on GitHub</string>
<string name="tutorial_finish_desc">This sample only implements the basic features of the library. Keep exploring the sources to find out the hidden gems of Dynamic Support.</string>
<string name="collapsing_app_bar">Collapsing App Bar</string>
<string name="collapsing_app_bar_subtitle">A collapsing app bar layout by using dynamic activity.</string>
<string name="bottom_navigation">Bottom navigation</string>
<string name="bottom_navigation_subtitle">A bottom navigation view by using dynamic activity.</string>
<string name="collapsing_app_bar_subtitle">A collapsing app bar layout by using the dynamic activity.</string>
<string name="navigation_bar">Navigation Bar</string>
<string name="navigation_bar_subtitle">A responsive navigation bar view by using the dynamic navigation activity.</string>
<string name="rotation">Rotation | Orientation Manager</string>
<string name="rotation_subtitle">A tool to manage the device orientation. It offers all the modes that Android supports and can be configured according to the apps or various events like call, lock, headset, charging and dock.</string>
<string name="everyday">Everyday | Calendar Widget</string>
Expand Down

0 comments on commit 9701c64

Please sign in to comment.