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
2f11e146
Commit
2f11e146
authored
Aug 27, 2020
by
Muhammad Suryono
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update form
parent
fc1d5171
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
154 additions
and
22 deletions
+154
-22
build.gradle
app/build.gradle
+1
-0
FormProductActivity.java
...rc/main/java/com/yono/messeripos/FormProductActivity.java
+29
-10
MainActivity.java
app/src/main/java/com/yono/messeripos/MainActivity.java
+23
-4
ProductAdapter.java
...main/java/com/yono/messeripos/adapter/ProductAdapter.java
+2
-0
ApiHelper.java
app/src/main/java/com/yono/messeripos/api/ApiHelper.java
+40
-1
ProductService.java
.../java/com/yono/messeripos/api/service/ProductService.java
+25
-7
MainViewModels.java
.../main/java/com/yono/messeripos/models/MainViewModels.java
+15
-0
Utils.java
app/src/main/java/com/yono/messeripos/utils/Utils.java
+19
-0
No files found.
app/build.gradle
View file @
2f11e146
...
@@ -45,6 +45,7 @@ dependencies {
...
@@ -45,6 +45,7 @@ dependencies {
implementation
'com.squareup.retrofit2:converter-gson:2.9.0'
implementation
'com.squareup.retrofit2:converter-gson:2.9.0'
implementation
'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation
'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation
'com.github.bumptech.glide:glide:4.3.1'
implementation
'com.github.bumptech.glide:glide:4.3.1'
implementation
'com.squareup.okhttp3:logging-interceptor:4.2.1'
implementation
project
(
':library'
)
implementation
project
(
':library'
)
def
room_version
=
"2.2.5"
def
room_version
=
"2.2.5"
...
...
app/src/main/java/com/yono/messeripos/FormProductActivity.java
View file @
2f11e146
...
@@ -15,6 +15,7 @@ import android.os.Environment;
...
@@ -15,6 +15,7 @@ import android.os.Environment;
import
android.os.PersistableBundle
;
import
android.os.PersistableBundle
;
import
android.provider.MediaStore
;
import
android.provider.MediaStore
;
import
android.provider.Settings
;
import
android.provider.Settings
;
import
android.util.Base64
;
import
android.util.Log
;
import
android.util.Log
;
import
android.view.Window
;
import
android.view.Window
;
import
android.view.WindowManager
;
import
android.view.WindowManager
;
...
@@ -34,6 +35,8 @@ import androidx.lifecycle.ViewModelProviders;
...
@@ -34,6 +35,8 @@ import androidx.lifecycle.ViewModelProviders;
import
com.google.android.material.appbar.MaterialToolbar
;
import
com.google.android.material.appbar.MaterialToolbar
;
import
com.jaredrummler.materialspinner.MaterialSpinner
;
import
com.jaredrummler.materialspinner.MaterialSpinner
;
import
com.yono.messeripos.api.client.Client
;
import
com.yono.messeripos.api.service.ProductService
;
import
com.yono.messeripos.databinding.FormProductBinding
;
import
com.yono.messeripos.databinding.FormProductBinding
;
import
com.yono.messeripos.models.CategoryModels
;
import
com.yono.messeripos.models.CategoryModels
;
import
com.yono.messeripos.models.MainViewModels
;
import
com.yono.messeripos.models.MainViewModels
;
...
@@ -41,14 +44,22 @@ import com.yono.messeripos.models.ProductModels;
...
@@ -41,14 +44,22 @@ import com.yono.messeripos.models.ProductModels;
import
com.yono.messeripos.response.DataResponse
;
import
com.yono.messeripos.response.DataResponse
;
import
com.yono.messeripos.utils.Utils
;
import
com.yono.messeripos.utils.Utils
;
import
java.io.ByteArrayOutputStream
;
import
java.io.File
;
import
java.io.File
;
import
java.nio.ByteBuffer
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
okhttp3.MediaType
;
import
okhttp3.MediaType
;
import
okhttp3.MultipartBody
;
import
okhttp3.RequestBody
;
import
okhttp3.RequestBody
;
import
retrofit2.Call
;
import
retrofit2.Callback
;
import
retrofit2.Response
;
import
retrofit2.http.Multipart
;
public
class
FormProductActivity
extends
AppCompatActivity
{
public
class
FormProductActivity
extends
AppCompatActivity
{
...
@@ -62,6 +73,7 @@ public class FormProductActivity extends AppCompatActivity {
...
@@ -62,6 +73,7 @@ public class FormProductActivity extends AppCompatActivity {
private
static
final
int
REQUEST_PERMISSIONS
=
448
;
private
static
final
int
REQUEST_PERMISSIONS
=
448
;
private
boolean
isUpdate
=
false
;
private
boolean
isUpdate
=
false
;
String
kondisi_spin
;
String
kondisi_spin
;
String
locationPath
=
null
;
private
static
final
String
[]
ANDROID_VERSIONS
=
{
private
static
final
String
[]
ANDROID_VERSIONS
=
{
"Cupcake"
,
"Cupcake"
,
...
@@ -83,6 +95,7 @@ public class FormProductActivity extends AppCompatActivity {
...
@@ -83,6 +95,7 @@ public class FormProductActivity extends AppCompatActivity {
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
};
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
};
private
Utils
utils
=
new
Utils
();
private
Utils
utils
=
new
Utils
();
ProgressDialog
progressDialog
;
ProgressDialog
progressDialog
;
Client
client
=
new
Client
();
@Override
@Override
public
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
public
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
...
@@ -117,9 +130,6 @@ public class FormProductActivity extends AppCompatActivity {
...
@@ -117,9 +130,6 @@ public class FormProductActivity extends AppCompatActivity {
categoryModels
.
add
(
"SELECT CATEGORY"
);
categoryModels
.
add
(
"SELECT CATEGORY"
);
setSpinner
();
setSpinner
();
}
}
private
void
setSpinner
()
{
private
void
setSpinner
()
{
...
@@ -144,12 +154,15 @@ public class FormProductActivity extends AppCompatActivity {
...
@@ -144,12 +154,15 @@ public class FormProductActivity extends AppCompatActivity {
productModels
.
setStockProduct
(
Integer
.
parseInt
(
binding
.
etStock
.
getText
().
toString
()));
productModels
.
setStockProduct
(
Integer
.
parseInt
(
binding
.
etStock
.
getText
().
toString
()));
productModels
.
setCategoryProduct
(
binding
.
listCategory
.
getSelectedIndex
());
productModels
.
setCategoryProduct
(
binding
.
listCategory
.
getSelectedIndex
());
Log
.
i
(
"save_path"
,
"saveProduct: "
+
locationPath
);
if
(
productModels
.
getImageProduct
()
!=
null
){
if
(
locationPath
!=
null
){
file
=
new
File
(
productModels
.
getImageProduct
());
File
fileImage
=
new
File
(
locationPath
);
if
(
file
.
exists
()){
Log
.
i
(
"save"
,
"saveProduct: "
+
locationPath
);
if
(
fileImage
.
exists
()){
progressDialog
.
show
();
// Toast.makeText(this, productModels.getImageProduct()+" "+productModels.getProductName(), Toast.LENGTH_LONG).show();
// Toast.makeText(this, productModels.getImageProduct()+" "+productModels.getProductName(), Toast.LENGTH_LONG).show();
// RequestBody file = RequestBody.create(MediaType)
utils
.
toastMessage
(
FormProductActivity
.
this
,
utils
.
convertGson
(
productModels
));
}
}
}
}
}
}
...
@@ -198,10 +211,16 @@ public class FormProductActivity extends AppCompatActivity {
...
@@ -198,10 +211,16 @@ public class FormProductActivity extends AppCompatActivity {
if
(
requestCode
==
100
&&
resultCode
==
RESULT_OK
&&
data
!=
null
)
{
if
(
requestCode
==
100
&&
resultCode
==
RESULT_OK
&&
data
!=
null
)
{
Uri
selectedImage
=
data
.
getData
();
Uri
selectedImage
=
data
.
getData
();
Log
.
d
(
"Get filepath photo"
,
""
+
getRealPathFromURI
(
selectedImage
));
binding
.
setPhoto
(
getRealPathFromURI
(
selectedImage
));
binding
.
setPhoto
(
getRealPathFromURI
(
selectedImage
));
productModels
.
setImageProduct
(
getRealPathFromURI
(
selectedImage
));
locationPath
=
getRealPathFromURI
(
selectedImage
);
ByteArrayOutputStream
baos
=
new
ByteArrayOutputStream
();
byte
[]
imageBytes
=
baos
.
toByteArray
();
imageBytes
=
Base64
.
decode
(
utils
.
convertImageBase64File
(
getRealPathFromURI
(
selectedImage
)),
Base64
.
DEFAULT
);
Bitmap
decodeImages
=
BitmapFactory
.
decodeByteArray
(
imageBytes
,
0
,
imageBytes
.
length
);
binding
.
ivProduct
.
setImageBitmap
(
decodeImages
);
productModels
.
setImageProduct
(
utils
.
convertImageBase64File
(
getRealPathFromURI
(
selectedImage
)));
}
}
}
}
...
...
app/src/main/java/com/yono/messeripos/MainActivity.java
View file @
2f11e146
...
@@ -32,6 +32,8 @@ import com.google.android.material.appbar.MaterialToolbar;
...
@@ -32,6 +32,8 @@ import com.google.android.material.appbar.MaterialToolbar;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
import
com.yono.messeripos.adapter.CategoryAdapter
;
import
com.yono.messeripos.adapter.CategoryAdapter
;
import
com.yono.messeripos.adapter.ProductAdapter
;
import
com.yono.messeripos.adapter.ProductAdapter
;
import
com.yono.messeripos.api.client.Client
;
import
com.yono.messeripos.api.service.ProductService
;
import
com.yono.messeripos.databinding.ActivityMainBinding
;
import
com.yono.messeripos.databinding.ActivityMainBinding
;
import
com.yono.messeripos.models.CategoryModels
;
import
com.yono.messeripos.models.CategoryModels
;
import
com.yono.messeripos.models.MainViewModels
;
import
com.yono.messeripos.models.MainViewModels
;
...
@@ -44,6 +46,10 @@ import com.yono.messeripos.utils.Utils;
...
@@ -44,6 +46,10 @@ import com.yono.messeripos.utils.Utils;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
retrofit2.Call
;
import
retrofit2.Callback
;
import
retrofit2.Response
;
public
class
MainActivity
extends
AppCompatActivity
{
public
class
MainActivity
extends
AppCompatActivity
{
MaterialToolbar
toolbar
;
MaterialToolbar
toolbar
;
MainViewModels
mainViewModels
;
MainViewModels
mainViewModels
;
...
@@ -60,6 +66,7 @@ public class MainActivity extends AppCompatActivity {
...
@@ -60,6 +66,7 @@ public class MainActivity extends AppCompatActivity {
public
static
Boolean
selectCategory
=
false
;
public
static
Boolean
selectCategory
=
false
;
public
static
String
orderId
;
public
static
String
orderId
;
private
static
final
String
ORDER_ID
=
"orderId"
;
private
static
final
String
ORDER_ID
=
"orderId"
;
Client
client
=
new
Client
();
@SuppressLint
(
"LongLogTag"
)
@SuppressLint
(
"LongLogTag"
)
@Override
@Override
...
@@ -128,15 +135,16 @@ public class MainActivity extends AppCompatActivity {
...
@@ -128,15 +135,16 @@ public class MainActivity extends AppCompatActivity {
}
}
}
else
if
(
id
==
R
.
id
.
update
){
}
else
if
(
id
==
R
.
id
.
update
){
status_update
=
true
;
status_update
=
true
;
binding
.
topAppBar
.
setVisibility
(
View
.
GONE
);
//
binding.topAppBar.setVisibility(View.GONE);
binding
.
rvCategory
.
setVisibility
(
View
.
GONE
);
binding
.
rvCategory
.
setVisibility
(
View
.
GONE
);
// binding.appBarUpdate.setVisibility(View.VISIBLE);
// binding.appBarUpdate.setVisibility(View.VISIBLE);
// MaterialToolbar toolbars = findViewById(R.id.appBarUpdate
);
MaterialToolbar
toolbars
=
findViewById
(
R
.
id
.
topAppBar
);
//
setSupportActionBar(toolbars);
setSupportActionBar
(
toolbars
);
getSupportActionBar
().
setDisplayHomeAsUpEnabled
(
true
);
getSupportActionBar
().
setDisplayHomeAsUpEnabled
(
true
);
getSupportActionBar
().
setDisplayShowHomeEnabled
(
true
);
getSupportActionBar
().
setDisplayShowHomeEnabled
(
true
);
getSupportActionBar
().
setTitle
(
"Update Product"
);
getSupportActionBar
().
setTitle
(
"Update Product"
);
//
toolbars.setNavigationOnClickListener(view -> updateFinish());
toolbars
.
setNavigationOnClickListener
(
view
->
updateFinish
());
productAdapter
.
notifyDataSetChanged
();
productAdapter
.
notifyDataSetChanged
();
}
else
if
(
id
==
R
.
id
.
create
)
{
}
else
if
(
id
==
R
.
id
.
create
)
{
...
@@ -240,7 +248,18 @@ public class MainActivity extends AppCompatActivity {
...
@@ -240,7 +248,18 @@ public class MainActivity extends AppCompatActivity {
@Override
@Override
public
void
onDelete
(
ProductModels
product
)
{
public
void
onDelete
(
ProductModels
product
)
{
ProductService
productService
=
client
.
Client
(
ProductService
.
class
);
productService
.
deleteProducts
(
product
.
getIdProduct
()).
enqueue
(
new
Callback
<
DataResponse
<
ProductModels
>>()
{
@Override
public
void
onResponse
(
Call
<
DataResponse
<
ProductModels
>>
call
,
Response
<
DataResponse
<
ProductModels
>>
response
)
{
}
@Override
public
void
onFailure
(
Call
<
DataResponse
<
ProductModels
>>
call
,
Throwable
t
)
{
}
});
}
}
@Override
@Override
...
...
app/src/main/java/com/yono/messeripos/adapter/ProductAdapter.java
View file @
2f11e146
...
@@ -148,6 +148,8 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo
...
@@ -148,6 +148,8 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo
MainActivity
.
cartIsEmpty
=
true
;
MainActivity
.
cartIsEmpty
=
true
;
}
}
});
});
binding
.
btnDelete
.
setOnClickListener
(
view
->
listener
.
onDelete
(
products
));
}
}
}
}
}
}
app/src/main/java/com/yono/messeripos/api/ApiHelper.java
View file @
2f11e146
package
com
.
yono
.
messeripos
.
api
;
package
com
.
yono
.
messeripos
.
api
;
import
android.util.Log
;
import
com.google.gson.Gson
;
import
com.google.gson.GsonBuilder
;
import
com.yono.messeripos.BuildConfig
;
import
java.util.concurrent.TimeUnit
;
import
okhttp3.OkHttpClient
;
import
okhttp3.Request
;
import
okhttp3.logging.HttpLoggingInterceptor
;
import
retrofit2.Retrofit
;
import
retrofit2.Retrofit
;
import
retrofit2.converter.gson.GsonConverterFactory
;
import
retrofit2.converter.gson.GsonConverterFactory
;
...
@@ -9,9 +20,37 @@ public class ApiHelper {
...
@@ -9,9 +20,37 @@ public class ApiHelper {
public
static
final
String
BASE_URL_IMAGE
=
"https://storage.googleapis.com/rest-api-meser.appspot.com/images/"
;
public
static
final
String
BASE_URL_IMAGE
=
"https://storage.googleapis.com/rest-api-meser.appspot.com/images/"
;
public
static
Retrofit
request
(
String
baseUrl
){
public
static
Retrofit
request
(
String
baseUrl
){
OkHttpClient
.
Builder
okHttp
=
new
OkHttpClient
().
newBuilder
();
okHttp
.
retryOnConnectionFailure
(
true
);
okHttp
.
connectTimeout
(
60
,
TimeUnit
.
SECONDS
);
okHttp
.
writeTimeout
(
60
,
TimeUnit
.
SECONDS
);
okHttp
.
readTimeout
(
60
,
TimeUnit
.
SECONDS
);
HttpLoggingInterceptor
interceptor
=
new
HttpLoggingInterceptor
(
s
->
Log
.
e
(
"API-LOG"
,
s
));
interceptor
.
level
(
HttpLoggingInterceptor
.
Level
.
BODY
);
if
(
BuildConfig
.
DEBUG
)
okHttp
.
addInterceptor
(
interceptor
);
okHttp
.
addInterceptor
(
chain
->
{
Request
request
=
chain
.
request
();
Request
newReq
=
request
.
newBuilder
()
.
addHeader
(
"Content-Type"
,
"application/json"
)
.
addHeader
(
"Accept"
,
"application/json"
)
.
addHeader
(
"Accept-Encoding"
,
"identity"
)
.
addHeader
(
"Connection"
,
"close"
)
.
addHeader
(
"Transfer-Encoding"
,
"chunked"
)
.
build
();
return
chain
.
proceed
(
newReq
);
});
OkHttpClient
client
=
okHttp
.
build
();
Retrofit
retrofit
=
new
Retrofit
.
Builder
()
Retrofit
retrofit
=
new
Retrofit
.
Builder
()
.
baseUrl
(
baseUrl
)
.
baseUrl
(
baseUrl
)
.
addConverterFactory
(
GsonConverterFactory
.
create
())
// .client(client)
.
addConverterFactory
(
GsonConverterFactory
.
create
(
new
GsonBuilder
().
setLenient
().
create
()
))
.
build
();
.
build
();
return
retrofit
;
return
retrofit
;
...
...
app/src/main/java/com/yono/messeripos/api/service/ProductService.java
View file @
2f11e146
...
@@ -5,25 +5,43 @@ import com.yono.messeripos.models.CategoryModels;
...
@@ -5,25 +5,43 @@ import com.yono.messeripos.models.CategoryModels;
import
com.yono.messeripos.models.ProductModels
;
import
com.yono.messeripos.models.ProductModels
;
import
com.yono.messeripos.response.DataResponse
;
import
com.yono.messeripos.response.DataResponse
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
okhttp3.MultipartBody
;
import
okhttp3.RequestBody
;
import
okhttp3.RequestBody
;
import
retrofit2.Call
;
import
retrofit2.Call
;
import
retrofit2.http.DELETE
;
import
retrofit2.http.GET
;
import
retrofit2.http.GET
;
import
retrofit2.http.Multipart
;
import
retrofit2.http.Multipart
;
import
retrofit2.http.POST
;
import
retrofit2.http.Part
;
import
retrofit2.http.Part
;
import
retrofit2.http.Path
;
public
interface
ProductService
{
public
interface
ProductService
{
@GET
(
ApiHelper
.
VERSI_API_1
+
"product-categories"
)
@GET
(
ApiHelper
.
VERSI_API_1
+
"product-categories"
)
Call
<
DataResponse
<
List
<
ProductModels
<
CategoryModels
>>>>
getProducts
();
Call
<
DataResponse
<
List
<
ProductModels
<
CategoryModels
>>>>
getProducts
();
@DELETE
(
ApiHelper
.
VERSI_API_1
+
"product/{id}"
)
Call
<
DataResponse
<
ProductModels
>>
deleteProducts
(
@Path
(
"id"
)
int
id
);
@Multipart
@POST
(
ApiHelper
.
VERSI_API_1
+
"product"
)
Call
<
HashMap
<
String
,
Object
>>
postProduct
(
@Part
MultipartBody
.
Part
image
,
@Part
(
"name"
)
RequestBody
name
,
@Part
(
"price"
)
RequestBody
price
,
@Part
(
"stock"
)
RequestBody
stock
,
@Part
(
"category_id"
)
RequestBody
category_id
);
@Multipart
@Multipart
@
GE
T
(
ApiHelper
.
VERSI_API_1
+
"product"
)
@
POS
T
(
ApiHelper
.
VERSI_API_1
+
"product"
)
Call
<
DataResponse
<
ProductModels
>>
postProduct
(
Call
<
DataResponse
<
ProductModels
>>
postProduct
s
(
@Part
(
"image\"; filename=\"messer_file.jpg\""
)
RequestBody
image
,
@Part
MultipartBody
.
Part
image
,
@Part
RequestBody
name
,
@Part
(
"name"
)
RequestBody
name
,
@Part
RequestBody
price
,
@Part
(
"price"
)
Integer
price
,
@Part
RequestBody
stock
,
@Part
(
"stock"
)
Integer
stock
,
@Part
RequestBody
category_id
@Part
(
"category_id"
)
int
category_id
);
);
}
}
app/src/main/java/com/yono/messeripos/models/MainViewModels.java
View file @
2f11e146
...
@@ -64,6 +64,21 @@ public class MainViewModels extends ViewModel {
...
@@ -64,6 +64,21 @@ public class MainViewModels extends ViewModel {
return
transactions
;
return
transactions
;
}
}
public
void
deleteProducts
(
int
id
){
ProductService
productService
=
client
.
Client
(
ProductService
.
class
);
productService
.
deleteProducts
(
id
).
enqueue
(
new
Callback
<
DataResponse
<
ProductModels
>>()
{
@Override
public
void
onResponse
(
Call
<
DataResponse
<
ProductModels
>>
call
,
Response
<
DataResponse
<
ProductModels
>>
response
)
{
Log
.
i
(
"Delete"
,
"onResponse: "
+
utils
.
convertGson
(
response
.
body
()));
}
@Override
public
void
onFailure
(
Call
<
DataResponse
<
ProductModels
>>
call
,
Throwable
t
)
{
Log
.
e
(
"error delete"
,
"onFailure: "
,
t
);
}
});
}
private
void
getDataTransaction
()
{
private
void
getDataTransaction
()
{
TransactionService
transactionService
=
client
.
Client
(
TransactionService
.
class
);
TransactionService
transactionService
=
client
.
Client
(
TransactionService
.
class
);
...
...
app/src/main/java/com/yono/messeripos/utils/Utils.java
View file @
2f11e146
package
com
.
yono
.
messeripos
.
utils
;
package
com
.
yono
.
messeripos
.
utils
;
import
android.content.Context
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.graphics.BitmapFactory
;
import
android.os.Build
;
import
android.os.Build
;
import
android.util.Base64
;
import
android.widget.Toast
;
import
androidx.annotation.RequiresApi
;
import
androidx.annotation.RequiresApi
;
import
androidx.recyclerview.widget.DividerItemDecoration
;
import
androidx.recyclerview.widget.DividerItemDecoration
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
import
java.io.ByteArrayOutputStream
;
import
java.text.DecimalFormat
;
import
java.text.DecimalFormat
;
import
java.text.DecimalFormatSymbols
;
import
java.text.DecimalFormatSymbols
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
...
@@ -73,4 +78,18 @@ public class Utils {
...
@@ -73,4 +78,18 @@ public class Utils {
String
localDate
=
localDateTime
.
format
(
localFormatter
);
String
localDate
=
localDateTime
.
format
(
localFormatter
);
return
localDate
;
return
localDate
;
}
}
public
String
convertImageBase64File
(
String
pathname
){
ByteArrayOutputStream
baos
=
new
ByteArrayOutputStream
();
Bitmap
bitmap
=
BitmapFactory
.
decodeFile
(
pathname
);
bitmap
.
compress
(
Bitmap
.
CompressFormat
.
JPEG
,
100
,
baos
);
byte
[]
b
=
baos
.
toByteArray
();
String
encodeImage
=
Base64
.
encodeToString
(
b
,
Base64
.
DEFAULT
);
return
encodeImage
;
}
public
void
toastMessage
(
Context
context
,
String
message
){
Toast
.
makeText
(
context
,
message
,
Toast
.
LENGTH_LONG
).
show
();
}
}
}
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