Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
M
meser
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Muhammad Suryono
meser
Commits
937a02d8
Commit
937a02d8
authored
Sep 02, 2020
by
Muhammad Suryono
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update
parent
5b669715
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
279 additions
and
17 deletions
+279
-17
misc.xml
.idea/misc.xml
+1
-1
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+8
-5
ListTransactions.java
app/src/main/java/com/yono/messeripos/ListTransactions.java
+39
-0
LoginActivity.java
app/src/main/java/com/yono/messeripos/LoginActivity.java
+1
-1
NdefMessageParser.java
...ava/com/yono/messeripos/nfc/parser/NdefMessageParser.java
+5
-4
SmartPoster.java
...main/java/com/yono/messeripos/nfc/record/SmartPoster.java
+1
-1
PageViewModel.java
.../main/java/com/yono/messeripos/ui/main/PageViewModel.java
+26
-0
PlaceholderFragment.java
...java/com/yono/messeripos/ui/main/PlaceholderFragment.java
+59
-0
SectionsPagerAdapter.java
...ava/com/yono/messeripos/ui/main/SectionsPagerAdapter.java
+46
-0
activity_list_transactions.xml
app/src/main/res/layout/activity_list_transactions.xml
+44
-0
fragment_list_transactions.xml
app/src/main/res/layout/fragment_list_transactions.xml
+23
-0
dimens.xml
app/src/main/res/values-w820dp/dimens.xml
+6
-0
dimens.xml
app/src/main/res/values/dimens.xml
+8
-0
strings.xml
app/src/main/res/values/strings.xml
+3
-0
styles.xml
app/src/main/res/values/styles.xml
+9
-5
No files found.
.idea/misc.xml
View file @
937a02d8
<?xml version="1.0" encoding="UTF-8"?>
<project
version=
"4"
>
<component
name=
"ProjectRootManager"
version=
"2"
languageLevel=
"JDK_1_8"
project-jdk-name=
"
JDK
"
project-jdk-type=
"JavaSDK"
>
<component
name=
"ProjectRootManager"
version=
"2"
languageLevel=
"JDK_1_8"
project-jdk-name=
"
1.8
"
project-jdk-type=
"JavaSDK"
>
<output
url=
"file://$PROJECT_DIR$/build/classes"
/>
</component>
<component
name=
"ProjectType"
>
...
...
app/src/main/AndroidManifest.xml
View file @
937a02d8
...
...
@@ -5,11 +5,10 @@
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<!--NFC PERMISSION AND FEATURE-->
<uses-permission
android:name=
"android.permission.NFC"
/>
<uses-feature
android:name=
"android.hardware.nfc"
/>
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<!-- NFC PERMISSION AND FEATURE -->
<uses-permission
android:name=
"android.permission.NFC"
/>
<uses-feature
android:name=
"android.hardware.nfc"
/>
<uses-feature
android:name=
"android.hardware.camera"
android:required=
"true"
/>
...
...
@@ -21,7 +20,11 @@
android:roundIcon=
"@mipmap/ic_launcher_new_icon"
android:supportsRtl=
"true"
android:theme=
"@style/AppTheme.appbar"
>
<activity
android:name=
".RegisterActivity"
></activity>
<activity
android:name=
".ListTransactions"
android:label=
"@string/title_activity_list_transactions"
android:theme=
"@style/AppTheme.appbar.NoActionBar"
></activity>
<activity
android:name=
".RegisterActivity"
/>
<activity
android:name=
".BottomSheets"
tools:ignore=
"Instantiatable"
/>
...
...
app/src/main/java/com/yono/messeripos/ListTransactions.java
0 → 100644
View file @
937a02d8
package
com
.
yono
.
messeripos
;
import
android.os.Bundle
;
import
com.google.android.material.floatingactionbutton.FloatingActionButton
;
import
com.google.android.material.snackbar.Snackbar
;
import
com.google.android.material.tabs.TabLayout
;
import
androidx.viewpager.widget.ViewPager
;
import
androidx.appcompat.app.AppCompatActivity
;
import
android.view.Menu
;
import
android.view.MenuItem
;
import
android.view.View
;
import
com.yono.messeripos.ui.main.SectionsPagerAdapter
;
public
class
ListTransactions
extends
AppCompatActivity
{
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_list_transactions
);
SectionsPagerAdapter
sectionsPagerAdapter
=
new
SectionsPagerAdapter
(
this
,
getSupportFragmentManager
());
ViewPager
viewPager
=
findViewById
(
R
.
id
.
view_pager
);
viewPager
.
setAdapter
(
sectionsPagerAdapter
);
TabLayout
tabs
=
findViewById
(
R
.
id
.
tabs
);
tabs
.
setupWithViewPager
(
viewPager
);
FloatingActionButton
fab
=
findViewById
(
R
.
id
.
fab
);
fab
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
view
)
{
Snackbar
.
make
(
view
,
"Replace with your own action"
,
Snackbar
.
LENGTH_LONG
)
.
setAction
(
"Action"
,
null
).
show
();
}
});
}
}
\ No newline at end of file
app/src/main/java/com/yono/messeripos/LoginActivity.java
View file @
937a02d8
...
...
@@ -51,7 +51,7 @@ public class LoginActivity extends AppCompatActivity {
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
payment_method
);
setContentView
(
R
.
layout
.
dashboard_login
);
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
KITKAT
)
{
Window
w
=
getWindow
();
...
...
app/src/main/java/com/yono/messeripos/nfc/parser/NdefMessageParser.java
View file @
937a02d8
...
...
@@ -3,10 +3,11 @@ package com.yono.messeripos.nfc.parser;
import
android.nfc.NdefMessage
;
import
android.nfc.NdefRecord
;
import
com.yono.nfc.record.ParsedNdefRecord
;
import
com.yono.nfc.record.SmartPoster
;
import
com.yono.nfc.record.TextRecord
;
import
com.yono.nfc.record.UriRecord
;
import
com.yono.messeripos.nfc.record.ParsedNdefRecord
;
import
com.yono.messeripos.nfc.record.SmartPoster
;
import
com.yono.messeripos.nfc.record.TextRecord
;
import
com.yono.messeripos.nfc.record.UriRecord
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
app/src/main/java/com/yono/messeripos/nfc/record/SmartPoster.java
View file @
937a02d8
...
...
@@ -8,7 +8,7 @@ import com.google.common.base.Charsets;
import
com.google.common.base.Preconditions
;
import
com.google.common.collect.ImmutableMap
;
import
com.google.common.collect.Iterables
;
import
com.yono.nfc.parser.NdefMessageParser
;
import
com.yono.
messeripos.
nfc.parser.NdefMessageParser
;
import
java.util.Arrays
;
import
java.util.NoSuchElementException
;
...
...
app/src/main/java/com/yono/messeripos/ui/main/PageViewModel.java
0 → 100644
View file @
937a02d8
package
com
.
yono
.
messeripos
.
ui
.
main
;
import
androidx.arch.core.util.Function
;
import
androidx.lifecycle.LiveData
;
import
androidx.lifecycle.MutableLiveData
;
import
androidx.lifecycle.Transformations
;
import
androidx.lifecycle.ViewModel
;
public
class
PageViewModel
extends
ViewModel
{
private
MutableLiveData
<
Integer
>
mIndex
=
new
MutableLiveData
<>();
private
LiveData
<
String
>
mText
=
Transformations
.
map
(
mIndex
,
new
Function
<
Integer
,
String
>()
{
@Override
public
String
apply
(
Integer
input
)
{
return
"Hello world from section: "
+
input
;
}
});
public
void
setIndex
(
int
index
)
{
mIndex
.
setValue
(
index
);
}
public
LiveData
<
String
>
getText
()
{
return
mText
;
}
}
\ No newline at end of file
app/src/main/java/com/yono/messeripos/ui/main/PlaceholderFragment.java
0 → 100644
View file @
937a02d8
package
com
.
yono
.
messeripos
.
ui
.
main
;
import
android.os.Bundle
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.TextView
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.NonNull
;
import
androidx.fragment.app.Fragment
;
import
androidx.lifecycle.Observer
;
import
androidx.lifecycle.ViewModelProviders
;
import
com.yono.messeripos.R
;
/**
* A placeholder fragment containing a simple view.
*/
public
class
PlaceholderFragment
extends
Fragment
{
private
static
final
String
ARG_SECTION_NUMBER
=
"section_number"
;
private
PageViewModel
pageViewModel
;
public
static
PlaceholderFragment
newInstance
(
int
index
)
{
PlaceholderFragment
fragment
=
new
PlaceholderFragment
();
Bundle
bundle
=
new
Bundle
();
bundle
.
putInt
(
ARG_SECTION_NUMBER
,
index
);
fragment
.
setArguments
(
bundle
);
return
fragment
;
}
@Override
public
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
pageViewModel
=
ViewModelProviders
.
of
(
this
).
get
(
PageViewModel
.
class
);
int
index
=
1
;
if
(
getArguments
()
!=
null
)
{
index
=
getArguments
().
getInt
(
ARG_SECTION_NUMBER
);
}
pageViewModel
.
setIndex
(
index
);
}
@Override
public
View
onCreateView
(
@NonNull
LayoutInflater
inflater
,
ViewGroup
container
,
Bundle
savedInstanceState
)
{
View
root
=
inflater
.
inflate
(
R
.
layout
.
fragment_main
,
container
,
false
);
final
TextView
textView
=
root
.
findViewById
(
R
.
id
.
section_label
);
pageViewModel
.
getText
().
observe
(
this
,
new
Observer
<
String
>()
{
@Override
public
void
onChanged
(
@Nullable
String
s
)
{
textView
.
setText
(
s
);
}
});
return
root
;
}
}
\ No newline at end of file
app/src/main/java/com/yono/messeripos/ui/main/SectionsPagerAdapter.java
0 → 100644
View file @
937a02d8
package
com
.
yono
.
messeripos
.
ui
.
main
;
import
android.content.Context
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.StringRes
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.FragmentManager
;
import
androidx.fragment.app.FragmentPagerAdapter
;
import
com.yono.messeripos.R
;
/**
* A [FragmentPagerAdapter] that returns a fragment corresponding to
* one of the sections/tabs/pages.
*/
public
class
SectionsPagerAdapter
extends
FragmentPagerAdapter
{
@StringRes
private
static
final
int
[]
TAB_TITLES
=
new
int
[]{
R
.
string
.
tab_text_1
,
R
.
string
.
tab_text_2
};
private
final
Context
mContext
;
public
SectionsPagerAdapter
(
Context
context
,
FragmentManager
fm
)
{
super
(
fm
);
mContext
=
context
;
}
@Override
public
Fragment
getItem
(
int
position
)
{
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class below).
return
PlaceholderFragment
.
newInstance
(
position
+
1
);
}
@Nullable
@Override
public
CharSequence
getPageTitle
(
int
position
)
{
return
mContext
.
getResources
().
getString
(
TAB_TITLES
[
position
]);
}
@Override
public
int
getCount
()
{
// Show 2 total pages.
return
2
;
}
}
\ No newline at end of file
app/src/main/res/layout/activity_list_transactions.xml
0 → 100644
View file @
937a02d8
<?xml version="1.0" encoding="utf-8"?>
<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"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".ListTransactions"
>
<com.google.android.material.appbar.AppBarLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:theme=
"@style/AppTheme.AppBarOverlay"
>
<TextView
android:id=
"@+id/title"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:gravity=
"center"
android:minHeight=
"?actionBarSize"
android:padding=
"@dimen/appbar_padding"
android:text=
"@string/app_name"
android:textAppearance=
"@style/TextAppearance.Widget.AppCompat.Toolbar.Title"
/>
<com.google.android.material.tabs.TabLayout
android:id=
"@+id/tabs"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"?attr/colorPrimary"
/>
</com.google.android.material.appbar.AppBarLayout>
<androidx.viewpager.widget.ViewPager
android:id=
"@+id/view_pager"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
app:layout_behavior=
"@string/appbar_scrolling_view_behavior"
/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id=
"@+id/fab"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"bottom|end"
android:layout_margin=
"@dimen/fab_margin"
app:srcCompat=
"@android:drawable/ic_dialog_email"
/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_list_transactions.xml
0 → 100644
View file @
937a02d8
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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"
android:id=
"@+id/constraintLayout"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".ui.main.PlaceholderFragment"
>
<TextView
android:id=
"@+id/section_label"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_marginTop=
"@dimen/activity_vertical_margin"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:layout_marginBottom=
"@dimen/activity_vertical_margin"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintTop_toTopOf=
"@+id/constraintLayout"
tools:layout_constraintLeft_creator=
"1"
tools:layout_constraintTop_creator=
"1"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/values-w820dp/dimens.xml
0 → 100644
View file @
937a02d8
<resources>
<!-- Example customization of dimensions originally defined in res/values/dimens.xml
(such as screen margins) for screens with more than 820dp of available width. This
would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
<dimen
name=
"activity_horizontal_margin"
>
64dp
</dimen>
</resources>
\ No newline at end of file
app/src/main/res/values/dimens.xml
0 → 100644
View file @
937a02d8
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen
name=
"activity_horizontal_margin"
>
16dp
</dimen>
<dimen
name=
"activity_vertical_margin"
>
16dp
</dimen>
<dimen
name=
"appbar_padding"
>
16dp
</dimen>
<dimen
name=
"fab_margin"
>
16dp
</dimen>
<dimen
name=
"appbar_padding_top"
>
8dp
</dimen>
</resources>
\ No newline at end of file
app/src/main/res/values/strings.xml
View file @
937a02d8
...
...
@@ -41,6 +41,9 @@
<item>
Uranus
</item>
<item>
Neptune
</item>
</string-array>
<string
name=
"title_activity_list_transactions"
>
ListTransactions
</string>
<string
name=
"tab_text_1"
>
Tab 1
</string>
<string
name=
"tab_text_2"
>
Tab 2
</string>
</resources>
\ No newline at end of file
app/src/main/res/values/styles.xml
View file @
937a02d8
...
...
@@ -36,7 +36,7 @@
<style
name=
"ThemeActionBar"
parent=
"Widget.MaterialComponents.Light.ActionBar.Solid"
>
<item
name=
"android:background"
>
@null
</item>
<item
name=
"android:background"
>
@null
</item>
<!-- Support library compatibility -->
<item
name=
"background"
>
@null
</item>
<item
name=
"android:displayOptions"
>
showHome|useLogo
</item>
...
...
@@ -44,7 +44,8 @@
</style>
<style
name=
"AppTheme.PopupOverlay"
parent=
"ThemeOverlay.AppCompat.Light"
/>
<style
name=
"AppTheme.AppBarOverlay"
parent=
"ThemeOverlay.AppCompat.Dark.ActionBar"
/>
<style
name=
"AppTheme.AppBarOverlay"
parent=
"ThemeOverlay.AppCompat.Dark.ActionBar"
/>
<style
name=
"Widget.TextInputLayout"
parent=
"Widget.MaterialComponents.TextInputLayout.OutlinedBox"
>
<item
name=
"hintTextAppearance"
>
@style/TextAppearance.TextInputLayout.HintText
</item>
...
...
@@ -81,9 +82,7 @@
<item
name=
"cornerFamily"
>
rounded
</item>
</style>
<style
name=
"ThemeOverlay.Rounded.BottomSheetDialog"
parent=
"@style/ThemeOverlay.MaterialComponents.BottomSheetDialog"
>
<style
name=
"ThemeOverlay.Rounded.BottomSheetDialog"
parent=
"@style/ThemeOverlay.MaterialComponents.BottomSheetDialog"
>
<item
name=
"bottomSheetStyle"
>
@style/Widget.Rounded.BottomSheet
</item>
</style>
...
...
@@ -94,4 +93,9 @@
<style
name=
"AppModalStyle"
parent=
"Widget.Design.BottomSheet.Modal"
>
<item
name=
"android:background"
>
@drawable/round_corner_sheet
</item>
</style>
<style
name=
"AppTheme.NoActionBar"
>
<item
name=
"windowActionBar"
>
false
</item>
<item
name=
"windowNoTitle"
>
true
</item>
</style>
</resources>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment