Site icon C1CTech

Android Jetpack Navigation Example

&NewLine;<p>This post is about Android Jetpack Navigation and how to set up and work with the Navigation component&period;<&sol;p> &NewLine; &NewLine; &NewLine; &NewLine;<div class&equals;"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-a89b3969 wp-block-buttons-is-layout-flex"> &NewLine;<div class&equals;"wp-block-button"><a class&equals;"wp-block-button&lowbar;&lowbar;link has-white-color has-text-color has-background" style&equals;"background-color&colon; &num;190681&semi;" href&equals;"https&colon;&sol;&sol;github&period;com&sol;arunk7839&sol;JetpackNavigation"><strong>DOWNLOAD CODE<&sol;strong><&sol;a><&sol;div> &NewLine;<&sol;div> &NewLine; &NewLine; &NewLine; &NewLine;<h4> <&sol;h4> &NewLine;<h4><strong><span style&equals;"color&colon; &num;000080&semi;">Jetpack Navigation<&sol;span><&sol;strong><&sol;h4> &NewLine;<p>Navigation refers to the interactions that allow users to navigate across&comma; into&comma; and back out from the different pieces of content within your app&period;<&sol;p> &NewLine;<p>Android Jetpack&&num;8217&semi;s Navigation component helps you implement navigation&comma; from simple button clicks to more complex patterns&comma; such as app bars and the navigation drawer&period;<&sol;p> &NewLine;<p>The Navigation component consists of three key parts that are described below&colon;<&sol;p> &NewLine;<p><span style&equals;"color&colon; &num;0000ff&semi;"><strong>NavHost&colon;<&sol;strong> <&sol;span><&sol;p> &NewLine;<p>The navigation host is an empty container where destinations are swapped in and out as a user navigates through your app&period; The Navigation component contains a default NavHost implementation&comma; NavHostFragment&comma; that displays fragment destinations&period;<&sol;p> &NewLine;<p><strong><span style&equals;"color&colon; &num;0000ff&semi;">Navigation graph&colon;<&sol;span> <&sol;strong><&sol;p> &NewLine;<p>An XML resource that contains all navigation-related information in one centralized location&period; This includes all of the individual content areas within your app&comma; called destinations&comma; as well as the possible paths that a user can take through your app&period;<&sol;p> &NewLine;<p><strong><span style&equals;"color&colon; &num;0000ff&semi;">NavController&colon;<&sol;span> <&sol;strong><&sol;p> &NewLine;<p>An object that manages app navigation within a NavHost&period; The NavController orchestrates the swapping of destination content in the NavHost as users move throughout your app&period;<&sol;p> &NewLine;<h4><span style&equals;"color&colon; &num;000080&semi;"><strong>Creating new project<&sol;strong><&sol;span><&sol;h4> &NewLine;<p>1 &period; Create a new project by going to<span style&equals;"color&colon; &num;008000&semi;"> <strong>File &Implies; New Android Project<&sol;strong><&sol;span>&comma; select <span style&equals;"color&colon; &num;008000&semi;"><strong>Empty<&sol;strong><&sol;span> Activity&comma; provide <span style&equals;"color&colon; &num;008000&semi;"><strong>app<&sol;strong><&sol;span> name&comma; select language to <span style&equals;"color&colon; &num;008000&semi;"><strong>kotlin<&sol;strong><&sol;span> and then finally click on <span style&equals;"color&colon; &num;0000ff&semi;"><strong>finish<&sol;strong><&sol;span>&period;<&sol;p> &NewLine;<p>2 &period; Open app-level build&period;gradle file and add the below libraries under the <span style&equals;"color&colon; &num;008000&semi;"><strong>dependencies<&sol;strong><&sol;span> section<strong>&colon;<&sol;strong><&sol;p> &NewLine;<p><strong><span style&equals;"color&colon; &num;0000ff&semi;">build&period;gradle<&sol;span><&sol;strong><&sol;p> &NewLine;<pre>dependencies &lbrace;<br &sol;><strong><span style&equals;"color&colon; &num;008000&semi;"> &sol;&sol; jetpack navigation dependency for kotlin<&sol;span><&sol;strong><br &sol;> implementation&lpar;"androidx&period;navigation&colon;navigation-fragment-ktx&colon;2&period;4&period;1"&rpar;<br &sol;> implementation&lpar;"androidx&period;navigation&colon;navigation-ui-ktx&colon;2&period;4&period;1"&rpar;<br &sol;>&rcub;<&sol;pre> &NewLine;<p><strong>Note&colon; Update the navigation library with the latest version from <a href&equals;"https&colon;&sol;&sol;developer&period;android&period;com&sol;guide&sol;navigation&sol;navigation-getting-started">here<&sol;a>&period;<&sol;strong><&sol;p> &NewLine;<h4 id&equals;"add-navhost" role&equals;"presentation" data-text&equals;"Add a NavHost to an activity"><span style&equals;"color&colon; &num;000080&semi;"><strong>Add a NavHostFragment via XML<&sol;strong><&sol;span><&sol;h4> &NewLine;<p>3&period; The below XML file shows a NavHostFragment as part of an app&&num;8217&semi;s main activity&colon;<&sol;p> &NewLine;<p><strong><span style&equals;"color&colon; &num;0000ff&semi;">activity&lowbar;main&period;xml<&sol;span><&sol;strong><&sol;p> &NewLine;<pre>&lt&semi;&quest;xml version&equals;"1&period;0" encoding&equals;"utf-8"&quest;&gt&semi;<br &sol;>&lt&semi;androidx&period;constraintlayout&period;widget&period;ConstraintLayout xmlns&colon;android&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;apk&sol;res&sol;android"<br &sol;> xmlns&colon;app&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;apk&sol;res-auto"<br &sol;> xmlns&colon;tools&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;tools"<br &sol;> android&colon;layout&lowbar;width&equals;"match&lowbar;parent"<br &sol;> android&colon;layout&lowbar;height&equals;"match&lowbar;parent"<br &sol;> tools&colon;context&equals;"&period;MainActivity"&gt&semi;<br &sol;><br &sol;> &lt&semi;fragment<br &sol;> android&colon;id&equals;"&commat;&plus;id&sol;nav&lowbar;host&lowbar;fragment"<br &sol;><strong><span style&equals;"color&colon; &num;008000&semi;"> android&colon;name&equals;"androidx&period;navigation&period;fragment&period;NavHostFragment"<&sol;span><&sol;strong><br &sol;> android&colon;layout&lowbar;width&equals;"match&lowbar;parent"<br &sol;> android&colon;layout&lowbar;height&equals;"match&lowbar;parent"<br &sol;><strong><span style&equals;"color&colon; &num;008000&semi;"> app&colon;defaultNavHost&equals;"true"<&sol;span><&sol;strong><br &sol;> app&colon;layout&lowbar;constraintBottom&lowbar;toBottomOf&equals;"parent"<br &sol;> app&colon;layout&lowbar;constraintEnd&lowbar;toEndOf&equals;"parent"<br &sol;> app&colon;layout&lowbar;constraintStart&lowbar;toStartOf&equals;"parent"<br &sol;> app&colon;layout&lowbar;constraintTop&lowbar;toTopOf&equals;"parent"<br &sol;> <strong><span style&equals;"color&colon; &num;339966&semi;"> app&colon;navGraph&equals;"&commat;navigation&sol;nav&lowbar;graph"<&sol;span><&sol;strong> &sol;&gt&semi;<br &sol;><br &sol;>&lt&semi;&sol;androidx&period;constraintlayout&period;widget&period;ConstraintLayout&gt&semi;<&sol;pre> &NewLine;<ul> &NewLine;<li><span style&equals;"color&colon; &num;0000ff&semi;"><strong>android&colon;name&colon; <&sol;strong><&sol;span>attribute contains the class name of your NavHost implementation&period;<&sol;li> &NewLine;<li><strong><span style&equals;"color&colon; &num;0000ff&semi;">app&colon;navGraph<&sol;span>&colon;<&sol;strong> defines which Navigation Graph will be associated with the Navigation Host&period;<&sol;li> &NewLine;<li><strong><span style&equals;"color&colon; &num;0000ff&semi;">app&colon;defaultNavHost&equals;&&num;8221&semi;true&&num;8221&semi;&colon;<&sol;span><&sol;strong> ensures that the Navigation Host intercepts the system back button when pressed&period;<&sol;li> &NewLine;<&sol;ul> &NewLine;<h4><span style&equals;"color&colon; &num;000080&semi;"><strong>Creating Fragments<&sol;strong><&sol;span><&sol;h4> &NewLine;<p>4&period; Let&&num;8217&semi;s create two Fragments i&period;e&period; FragmentA and FragmentB&period;<&sol;p> &NewLine;<h5><span style&equals;"color&colon; &num;000080&semi;"><strong>Creating Fragment&&num;8217&semi;s kotlin file<&sol;strong><&sol;span><&sol;h5> &NewLine;<p><strong><span style&equals;"color&colon; &num;0000ff&semi;">FragmentA&period;kt<&sol;span><&sol;strong><&sol;p> &NewLine;<pre>package com&period;c1ctech&period;jetpacknavigation<br &sol;><br &sol;>import android&period;os&period;Bundle<br &sol;>import android&period;view&period;LayoutInflater<br &sol;>import android&period;view&period;View<br &sol;>import android&period;view&period;ViewGroup<br &sol;>import android&period;widget&period;Button<br &sol;>import androidx&period;fragment&period;app&period;Fragment<br &sol;>import androidx&period;navigation&period;findNavController<br &sol;><br &sol;>class FragmentA &colon; Fragment&lpar;&rpar; &lbrace;<br &sol;><br &sol;> override fun onCreateView&lpar;<br &sol;> inflater&colon; LayoutInflater&comma; container&colon; ViewGroup&quest;&comma;<br &sol;> savedInstanceState&colon; Bundle&quest;<br &sol;> &rpar;&colon; View&quest; &lbrace;<br &sol;><strong><span style&equals;"color&colon; &num;008000&semi;"> &sol;&sol; Inflate the layout for this fragment<&sol;span><&sol;strong><br &sol;> return inflater&period;inflate&lpar;R&period;layout&period;fragment&lowbar;a&comma; container&comma; false&rpar;<br &sol;> &rcub;<br &sol;><br &sol;> override fun onViewCreated&lpar;view&colon; View&comma; savedInstanceState&colon; Bundle&quest;&rpar; &lbrace;<br &sol;> super&period;onViewCreated&lpar;view&comma; savedInstanceState&rpar;<br &sol;><br &sol;> <strong><span style&equals;"color&colon; &num;008000&semi;"> &sol;&sol;get NavController instance<&sol;span><&sol;strong><br &sol;> val navController &equals; view&period;findNavController&lpar;&rpar;<br &sol;><br &sol;> val button &equals; view&period;findViewById&lt&semi;Button&gt&semi;&lpar;R&period;id&period;btnGotoFragmentB&rpar;<br &sol;><br &sol;> button&period;setOnClickListener &lbrace; <br &sol;><strong><span style&equals;"color&colon; &num;008000&semi;"> &sol;&sol;navigates from fragment A to Fragment B<&sol;span><&sol;strong><br &sol;> navController&period;navigate&lpar;R&period;id&period;action&lowbar;fragmentA&lowbar;to&lowbar;fragmentB&rpar; &rcub;<br &sol;> &rcub;<br &sol;>&rcub;<&sol;pre> &NewLine;<p><strong><span style&equals;"color&colon; &num;0000ff&semi;">FragmentB&period;kt<&sol;span><&sol;strong><&sol;p>&NewLine;<&excl;-- WP QUADS Content Ad Plugin v&period; 2&period;0&period;98&period;1 -->&NewLine;<div class&equals;"quads-location quads-ad2" id&equals;"quads-ad2" style&equals;"float&colon;none&semi;margin&colon;0px&semi;">&NewLine;&NewLine;<&sol;div>&NewLine; &NewLine;<pre>package com&period;c1ctech&period;jetpacknavigation<br &sol;><br &sol;>import android&period;os&period;Bundle<br &sol;>import androidx&period;fragment&period;app&period;Fragment<br &sol;>import android&period;view&period;LayoutInflater<br &sol;>import android&period;view&period;View<br &sol;>import android&period;view&period;ViewGroup<br &sol;><br &sol;>class FragmentB &colon; Fragment&lpar;&rpar; &lbrace;<br &sol;><br &sol;> override fun onCreateView&lpar;<br &sol;> inflater&colon; LayoutInflater&comma; container&colon; ViewGroup&quest;&comma;<br &sol;> savedInstanceState&colon; Bundle&quest;<br &sol;> &rpar;&colon; View&quest; &lbrace;<br &sol;><strong><span style&equals;"color&colon; &num;008000&semi;"> &sol;&sol; Inflate the layout for this fragment<&sol;span><&sol;strong><br &sol;> return inflater&period;inflate&lpar;R&period;layout&period;fragment&lowbar;b&comma; container&comma; false&rpar;<br &sol;> &rcub;<br &sol;>&rcub;<&sol;pre> &NewLine;<h5><strong><span style&equals;"color&colon; &num;000080&semi;">Creating Fragment&&num;8217&semi;s layout file<&sol;span><&sol;strong><&sol;h5> &NewLine;<p><strong><span style&equals;"color&colon; &num;0000ff&semi;">fragment&lowbar;a&period;xml<&sol;span><&sol;strong><&sol;p> &NewLine;<pre>&lt&semi;&quest;xml version&equals;"1&period;0" encoding&equals;"utf-8"&quest;&gt&semi;<br &sol;>&lt&semi;FrameLayout xmlns&colon;android&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;apk&sol;res&sol;android"<br &sol;> xmlns&colon;tools&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;tools"<br &sol;> android&colon;layout&lowbar;width&equals;"match&lowbar;parent"<br &sol;> android&colon;layout&lowbar;height&equals;"match&lowbar;parent"<br &sol;> tools&colon;context&equals;"&period;FragmentA"&gt&semi;<br &sol;><br &sol;> &lt&semi;TextView<br &sol;> android&colon;layout&lowbar;width&equals;"match&lowbar;parent"<br &sol;> android&colon;layout&lowbar;height&equals;"match&lowbar;parent"<br &sol;> android&colon;gravity&equals;"center"<br &sol;> android&colon;text&equals;"FragmentA"<br &sol;> android&colon;textSize&equals;"30sp" &sol;&gt&semi;<br &sol;><br &sol;> &lt&semi;Button<br &sol;> android&colon;id&equals;"&commat;&plus;id&sol;btnGotoFragmentB"<br &sol;> android&colon;layout&lowbar;width&equals;"wrap&lowbar;content"<br &sol;> android&colon;layout&lowbar;height&equals;"wrap&lowbar;content"<br &sol;> android&colon;layout&lowbar;gravity&equals;"center&lowbar;horizontal&vert;bottom"<br &sol;> android&colon;text&equals;"Goto FragmentB"<br &sol;> android&colon;textAllCaps&equals;"false" &sol;&gt&semi;<br &sol;><br &sol;>&lt&semi;&sol;FrameLayout&gt&semi;<&sol;pre> &NewLine;<p><strong><span style&equals;"color&colon; &num;0000ff&semi;">fragment&lowbar;b&period;xml<&sol;span><&sol;strong><&sol;p> &NewLine;<pre>&lt&semi;&quest;xml version&equals;"1&period;0" encoding&equals;"utf-8"&quest;&gt&semi;<br &sol;>&lt&semi;FrameLayout xmlns&colon;android&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;apk&sol;res&sol;android"<br &sol;> xmlns&colon;tools&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;tools"<br &sol;> android&colon;layout&lowbar;width&equals;"match&lowbar;parent"<br &sol;> android&colon;layout&lowbar;height&equals;"match&lowbar;parent"<br &sol;> tools&colon;context&equals;"&period;FragmentB"&gt&semi;<br &sol;><br &sol;> &lt&semi;TextView<br &sol;> android&colon;layout&lowbar;width&equals;"match&lowbar;parent"<br &sol;> android&colon;layout&lowbar;height&equals;"match&lowbar;parent"<br &sol;> android&colon;gravity&equals;"center"<br &sol;> android&colon;text&equals;"FragmentB"<br &sol;> android&colon;textSize&equals;"30sp" &sol;&gt&semi;<br &sol;><br &sol;>&lt&semi;&sol;FrameLayout&gt&semi;<&sol;pre> &NewLine;<h4 id&equals;"add-navhost" role&equals;"presentation" data-text&equals;"Add a NavHost to an activity"><strong><span class&equals;"devsite-heading" style&equals;"color&colon; &num;000080&semi;" role&equals;"heading" aria-level&equals;"2">Add a Navigation graph<&sol;span><&sol;strong><&sol;h4> &NewLine;<p>5&period; Right-click on the <span style&equals;"color&colon; &num;008000&semi;"><strong>res<&sol;strong><&sol;span> directory and choose <strong><span style&equals;"color&colon; &num;008000&semi;">New -&gt&semi; Android resource file<&sol;span>&period;<&sol;strong> Set the title for the file and choose <span style&equals;"color&colon; &num;008000&semi;"><strong>Navigation<&sol;strong><&sol;span> from the <span style&equals;"color&colon; &num;008000&semi;"><strong>Resource type<&sol;strong><&sol;span> dropdown and then click on <strong><span style&equals;"color&colon; &num;008000&semi;">ok<&sol;span><&sol;strong>&period;<&sol;p> &NewLine;<p><strong><span style&equals;"color&colon; &num;0000ff&semi;">nav&lowbar;graph&period;xml<&sol;span><&sol;strong><&sol;p> &NewLine;<pre>&lt&semi;&quest;xml version&equals;"1&period;0" encoding&equals;"utf-8"&quest;&gt&semi;<br &sol;>&lt&semi;navigation xmlns&colon;android&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;apk&sol;res&sol;android"<br &sol;> xmlns&colon;app&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;apk&sol;res-auto"<br &sol;> xmlns&colon;tools&equals;"http&colon;&sol;&sol;schemas&period;android&period;com&sol;tools"<br &sol;> android&colon;id&equals;"&commat;&plus;id&sol;nav&lowbar;graph"<br &sol;> app&colon;startDestination&equals;"&commat;id&sol;fragmentA"&gt&semi;<br &sol;><br &sol;> &lt&semi;fragment<br &sol;> android&colon;id&equals;"&commat;&plus;id&sol;fragmentA"<br &sol;> android&colon;name&equals;"com&period;c1ctech&period;jetpacknavigation&period;FragmentA"<br &sol;> android&colon;label&equals;"FragmentA"<br &sol;> tools&colon;layout&equals;"&commat;layout&sol;fragment&lowbar;a"&gt&semi;<br &sol;><br &sol;> &lt&semi;action<br &sol;> android&colon;id&equals;"&commat;&plus;id&sol;action&lowbar;fragmentA&lowbar;to&lowbar;fragmentB"<br &sol;> app&colon;destination&equals;"&commat;id&sol;fragmentB" &sol;&gt&semi;<br &sol;><br &sol;> &lt&semi;&sol;fragment&gt&semi;<br &sol;><br &sol;> &lt&semi;fragment<br &sol;> android&colon;id&equals;"&commat;&plus;id&sol;fragmentB"<br &sol;> android&colon;name&equals;"com&period;c1ctech&period;jetpacknavigation&period;FragmentB"<br &sol;> android&colon;label&equals;"FragmentB"<br &sol;> tools&colon;layout&equals;"&commat;layout&sol;fragment&lowbar;b"&sol;&gt&semi;<br &sol;><br &sol;>&lt&semi;&sol;navigation&gt&semi;<&sol;pre> &NewLine;<ul> &NewLine;<li><span style&equals;"color&colon; &num;0000ff&semi;"><strong>app&colon;startDestination&colon; <&sol;strong><span style&equals;"color&colon; &num;333333&semi;">defines the starting destination&period; <&sol;span><&sol;span><&sol;li> &NewLine;<li><span style&equals;"color&colon; &num;0000ff&semi;"><strong>android&colon;name&colon; <&sol;strong><&sol;span>shows the name of the fragment that is associated with the destination&period;<&sol;li> &NewLine;<li><span style&equals;"color&colon; &num;0000ff&semi;"><strong>android&colon;label&colon; <&sol;strong><span style&equals;"color&colon; &num;333333&semi;">contains the user-readable name of the destination&period;<&sol;span><&sol;span><&sol;li> &NewLine;<li><span style&equals;"color&colon; &num;0000ff&semi;"><strong>tools&colon;layout&colon; <&sol;strong><span style&equals;"color&colon; &num;333333&semi;">defines the layout of the destination&period;<&sol;span><&sol;span><&sol;li> &NewLine;<li><span style&equals;"color&colon; &num;0000ff&semi;"><strong>action&colon; <&sol;strong><span style&equals;"color&colon; &num;333333&semi;">defines the destination to which the user navigates using <strong><span style&equals;"color&colon; &num;008000&semi;">destination<&sol;span><&sol;strong> attribute&period;<&sol;span><&sol;span><&sol;li> &NewLine;<&sol;ul> &NewLine;<h4><strong><span style&equals;"color&colon; &num;000080&semi;">Writing MainActivity Code<&sol;span><&sol;strong><&sol;h4> &NewLine;<p>6&period; The MainActivity file contains the below code&colon;<&sol;p> &NewLine;<p><strong><span style&equals;"color&colon; &num;0000ff&semi;">MainActivity&period;kt<&sol;span><&sol;strong><&sol;p> &NewLine;<pre>package com&period;c1ctech&period;jetpacknavigation<br &sol;><br &sol;>import android&period;os&period;Bundle<br &sol;>import androidx&period;appcompat&period;app&period;AppCompatActivity<br &sol;>import androidx&period;navigation&period;NavController<br &sol;>import androidx&period;navigation&period;findNavController<br &sol;>import androidx&period;navigation&period;ui&period;NavigationUI&period;setupActionBarWithNavController<br &sol;><br &sol;>class MainActivity &colon; AppCompatActivity&lpar;&rpar; &lbrace;<br &sol;><br &sol;> lateinit var navController&colon; NavController<br &sol;><br &sol;> override fun onCreate&lpar;savedInstanceState&colon; Bundle&quest;&rpar; &lbrace;<br &sol;> super&period;onCreate&lpar;savedInstanceState&rpar;<br &sol;> setContentView&lpar;R&period;layout&period;activity&lowbar;main&rpar;<br &sol;><br &sol;> navController &equals; this&period;findNavController&lpar;R&period;id&period;nav&lowbar;host&lowbar;fragment&rpar;<br &sol;><br &sol;> setupActionBarWithNavController&lpar;this&comma; navController&rpar;<br &sol;> &rcub;<br &sol;><br &sol;> override fun onSupportNavigateUp&lpar;&rpar;&colon; Boolean &lbrace;<br &sol;> navController&period;navigateUp&lpar;&rpar;<br &sol;> return super&period;onSupportNavigateUp&lpar;&rpar;<br &sol;> &rcub;<br &sol;>&rcub;<&sol;pre> &NewLine;<p>In the above code&comma;<&sol;p> &NewLine;<ul> &NewLine;<li><strong><span style&equals;"color&colon; &num;0000ff&semi;">this&period;findNavController&lpar;&rpar;<&sol;span><&sol;strong> gives us the instance of NavController&period;<&sol;li> &NewLine;<li><strong><span style&equals;"color&colon; &num;0000ff&semi;">setupActionBarWithNavController&lpar;&rpar;&colon;<&sol;span><&sol;strong> Sets up the ActionBar returned by <span style&equals;"color&colon; &num;008000&semi;"><strong>AppCompatActivity&period;getSupportActionBar<&sol;strong> <&sol;span>for use with a NavController&period;By calling this method&comma; the title in the action bar will automatically be updated when the destination changes&period;<&sol;li> &NewLine;<li><strong><span style&equals;"color&colon; &num;0000ff&semi;">onSupportNavigateUp&lpar;&rpar;&colon;<&sol;span><&sol;strong> This method is called whenever the user chooses to navigate Up within your application&&num;8217&semi;s activity hierarchy from the action bar&period;<&sol;li> &NewLine;<&sol;ul> &NewLine;<p>When you run the app it will look like this&colon;<&sol;p> &NewLine;<p><img class&equals;"alignnone wp-image-3159" src&equals;"https&colon;&sol;&sol;c1ctech&period;com&sol;wp-content&sol;uploads&sol;2022&sol;04&sol;Screenshot&lowbar;2022-04-06-13-22-59-448&lowbar;com&period;c1ctech&period;jetpacknavigation-473x1024&period;png" alt&equals;"" width&equals;"342" height&equals;"740" &sol;>            <img class&equals;"alignnone wp-image-3160" src&equals;"https&colon;&sol;&sol;c1ctech&period;com&sol;wp-content&sol;uploads&sol;2022&sol;04&sol;Screenshot&lowbar;2022-04-06-13-23-07-863&lowbar;com&period;c1ctech&period;jetpacknavigation-473x1024&period;png" alt&equals;"" width&equals;"344" height&equals;"743" &sol;><&sol;p> &NewLine;<p>&nbsp&semi;<&sol;p> &NewLine;&NewLine;

Exit mobile version