Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
android-mvp
Project
Project
Details
Activity
Releases
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
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Marcus Sales
android-mvp
Commits
99f293ea
Commit
99f293ea
authored
Oct 02, 2017
by
Marcus Sales
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Termina implementação
parent
9126897d
Changes
41
Hide whitespace changes
Inline
Side-by-side
Showing
41 changed files
with
1086 additions
and
244 deletions
+1086
-244
build.gradle
app/build.gradle
+3
-0
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+8
-0
AppDataManager.java
...c/main/java/br/com/evologica/mvp/data/AppDataManager.java
+46
-0
DataManager.java
app/src/main/java/br/com/evologica/mvp/data/DataManager.java
+3
-1
AppDbHelper.java
...c/main/java/br/com/evologica/mvp/data/db/AppDbHelper.java
+30
-0
DbHelper.java
app/src/main/java/br/com/evologica/mvp/data/db/DbHelper.java
+19
-0
Sensor.java
.../main/java/br/com/evologica/mvp/data/db/model/Sensor.java
+39
-0
Stream.java
.../main/java/br/com/evologica/mvp/data/db/model/Stream.java
+33
-0
StreamData.java
...n/java/br/com/evologica/mvp/data/db/model/StreamData.java
+29
-0
ApiHelper.java
...ain/java/br/com/evologica/mvp/data/network/ApiHelper.java
+15
-0
AppApiHelper.java
.../java/br/com/evologica/mvp/data/network/AppApiHelper.java
+32
-0
DetailSensorActivity.java
...m/evologica/mvp/ui/detailSensor/DetailSensorActivity.java
+88
-0
DetailSensorMvpPresenter.java
...ologica/mvp/ui/detailSensor/DetailSensorMvpPresenter.java
+13
-0
DetailSensorMvpView.java
...om/evologica/mvp/ui/detailSensor/DetailSensorMvpView.java
+17
-0
DetailSensorPresenter.java
.../evologica/mvp/ui/detailSensor/DetailSensorPresenter.java
+52
-0
StreamsAdapter.java
.../br/com/evologica/mvp/ui/detailSensor/StreamsAdapter.java
+74
-0
DetailStreamActivity.java
...m/evologica/mvp/ui/detailStream/DetailStreamActivity.java
+87
-0
DetailStreamMvpPresenter.java
...ologica/mvp/ui/detailStream/DetailStreamMvpPresenter.java
+13
-0
DetailStreamMvpView.java
...om/evologica/mvp/ui/detailStream/DetailStreamMvpView.java
+17
-0
DetailStreamPresenter.java
.../evologica/mvp/ui/detailStream/DetailStreamPresenter.java
+51
-0
StreamDataAdapter.java
.../com/evologica/mvp/ui/detailStream/StreamDataAdapter.java
+63
-0
LoginActivity.java
...ain/java/br/com/evologica/mvp/ui/login/LoginActivity.java
+0
-44
LoginMvpPresenter.java
...java/br/com/evologica/mvp/ui/login/LoginMvpPresenter.java
+0
-13
LoginMvpView.java
...main/java/br/com/evologica/mvp/ui/login/LoginMvpView.java
+0
-12
LoginPresenter.java
...in/java/br/com/evologica/mvp/ui/login/LoginPresenter.java
+0
-22
MainActivity.java
.../main/java/br/com/evologica/mvp/ui/main/MainActivity.java
+38
-10
MainMvpPresenter.java
...n/java/br/com/evologica/mvp/ui/main/MainMvpPresenter.java
+1
-1
MainMvpView.java
...c/main/java/br/com/evologica/mvp/ui/main/MainMvpView.java
+5
-1
MainPresenter.java
...main/java/br/com/evologica/mvp/ui/main/MainPresenter.java
+30
-1
SensoresAdapter.java
...in/java/br/com/evologica/mvp/ui/main/SensoresAdapter.java
+78
-0
SplashActivity.java
...n/java/br/com/evologica/mvp/ui/splash/SplashActivity.java
+0
-8
SplashMvpView.java
...in/java/br/com/evologica/mvp/ui/splash/SplashMvpView.java
+0
-2
SplashPresenter.java
.../java/br/com/evologica/mvp/ui/splash/SplashPresenter.java
+1
-5
CommonUtils.java
...src/main/java/br/com/evologica/mvp/utils/CommonUtils.java
+0
-20
activity_detail_sensor.xml
app/src/main/res/layout/activity_detail_sensor.xml
+36
-0
activity_detail_streams.xml
app/src/main/res/layout/activity_detail_streams.xml
+36
-0
activity_main.xml
app/src/main/res/layout/activity_main.xml
+30
-76
progress_dialog.xml
app/src/main/res/layout/progress_dialog.xml
+0
-28
sensor_item.xml
app/src/main/res/layout/sensor_item.xml
+31
-0
stream_data_item.xml
app/src/main/res/layout/stream_data_item.xml
+43
-0
stream_item.xml
app/src/main/res/layout/stream_item.xml
+25
-0
No files found.
app/build.gradle
View file @
99f293ea
...
...
@@ -39,6 +39,9 @@ dependencies {
testCompile
"junit:junit:$rootProject.ext.junitVersion"
testCompile
"org.mockito:mockito-core:$rootProject.mockitoVersion"
//
compile
'com.amitshekhar.android:android-networking:1.0.0'
// UI Testing
androidTestCompile
"com.android.support:support-annotations:$rootProject.supportLibraryVersion"
androidTestCompile
"com.android.support.test.espresso:espresso-core:$rootProject.espressoVersion"
...
...
app/src/main/AndroidManifest.xml
View file @
99f293ea
...
...
@@ -32,6 +32,14 @@
android:launchMode=
"singleTop"
android:screenOrientation=
"portrait"
/>
<activity
android:name=
".ui.detailSensor.DetailSensorActivity"
android:launchMode=
"singleTop"
android:screenOrientation=
"portrait"
/>
<activity
android:name=
".ui.detailStream.DetailStreamActivity"
android:launchMode=
"singleTop"
android:screenOrientation=
"portrait"
/>
</application>
</manifest>
app/src/main/java/br/com/evologica/mvp/data/AppDataManager.java
View file @
99f293ea
...
...
@@ -2,6 +2,18 @@ package br.com.evologica.mvp.data;
import
android.content.Context
;
import
com.androidnetworking.common.ANRequest
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
br.com.evologica.mvp.data.db.AppDbHelper
;
import
br.com.evologica.mvp.data.db.DbHelper
;
import
br.com.evologica.mvp.data.db.model.Sensor
;
import
br.com.evologica.mvp.data.db.model.Stream
;
import
br.com.evologica.mvp.data.db.model.StreamData
;
import
br.com.evologica.mvp.data.network.ApiHelper
;
import
br.com.evologica.mvp.data.network.AppApiHelper
;
import
br.com.evologica.mvp.data.prefs.AppPreferencesHelper
;
import
br.com.evologica.mvp.data.prefs.PreferencesHelper
;
import
br.com.evologica.mvp.utils.AppConstants
;
...
...
@@ -16,10 +28,14 @@ public class AppDataManager implements DataManager {
private
final
Context
mContext
;
private
PreferencesHelper
mPreferencesHelper
;
private
ApiHelper
mApiHelper
;
private
DbHelper
mDbHelper
;
public
AppDataManager
(
Context
ctx
)
{
mContext
=
ctx
;
mPreferencesHelper
=
new
AppPreferencesHelper
(
ctx
,
AppConstants
.
PREF_NAME
);
mApiHelper
=
new
AppApiHelper
();
mDbHelper
=
new
AppDbHelper
();
}
@Override
...
...
@@ -36,4 +52,34 @@ public class AppDataManager implements DataManager {
public
boolean
isLogged
()
{
return
mPreferencesHelper
.
isLogged
();
}
@Override
public
ANRequest
getAllStreams
()
{
return
mApiHelper
.
getAllStreams
();
}
@Override
public
ANRequest
getDetailSensor
(
int
oidSensor
)
{
return
mApiHelper
.
getDetailSensor
(
oidSensor
);
}
@Override
public
ANRequest
getDetailStream
(
int
oidSensor
,
int
oidStream
)
{
return
mApiHelper
.
getDetailStream
(
oidSensor
,
oidStream
);
}
@Override
public
Sensor
createSensor
(
JSONObject
jsonObject
)
throws
JSONException
{
return
mDbHelper
.
createSensor
(
jsonObject
);
}
@Override
public
Stream
createStream
(
JSONObject
jsonObject
)
throws
JSONException
{
return
mDbHelper
.
createStream
(
jsonObject
);
}
@Override
public
StreamData
createStreamData
(
JSONObject
jsonObject
)
throws
JSONException
{
return
mDbHelper
.
createStreamData
(
jsonObject
);
}
}
app/src/main/java/br/com/evologica/mvp/data/DataManager.java
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
data
;
import
br.com.evologica.mvp.data.db.DbHelper
;
import
br.com.evologica.mvp.data.network.ApiHelper
;
import
br.com.evologica.mvp.data.prefs.PreferencesHelper
;
/**
* Created by marcussales on 01/03/2017.
*/
public
interface
DataManager
extends
PreferencesHelper
{
public
interface
DataManager
extends
PreferencesHelper
,
ApiHelper
,
DbHelper
{
}
app/src/main/java/br/com/evologica/mvp/data/db/AppDbHelper.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
data
.
db
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
br.com.evologica.mvp.data.db.model.Sensor
;
import
br.com.evologica.mvp.data.db.model.Stream
;
import
br.com.evologica.mvp.data.db.model.StreamData
;
/**
* Created by marcussales on 02/10/2017.
*/
public
class
AppDbHelper
implements
DbHelper
{
@Override
public
Sensor
createSensor
(
JSONObject
jsonObject
)
throws
JSONException
{
return
new
Sensor
(
jsonObject
);
}
@Override
public
Stream
createStream
(
JSONObject
jsonObject
)
throws
JSONException
{
return
new
Stream
(
jsonObject
);
}
@Override
public
StreamData
createStreamData
(
JSONObject
jsonObject
)
throws
JSONException
{
return
new
StreamData
(
jsonObject
);
}
}
app/src/main/java/br/com/evologica/mvp/data/db/DbHelper.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
data
.
db
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
br.com.evologica.mvp.data.db.model.Sensor
;
import
br.com.evologica.mvp.data.db.model.Stream
;
import
br.com.evologica.mvp.data.db.model.StreamData
;
/**
* Created by marcussales on 02/10/2017.
*/
public
interface
DbHelper
{
Sensor
createSensor
(
JSONObject
jsonObject
)
throws
JSONException
;
Stream
createStream
(
JSONObject
jsonObject
)
throws
JSONException
;
StreamData
createStreamData
(
JSONObject
jsonObject
)
throws
JSONException
;
}
app/src/main/java/br/com/evologica/mvp/data/db/model/Sensor.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
data
.
db
.
model
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
/**
* Created by marcussales on 02/10/2017.
*/
public
class
Sensor
{
private
int
oid
;
private
String
nome
;
private
String
key
;
private
int
streamNumber
;
public
Sensor
(
JSONObject
jsonObject
)
throws
JSONException
{
this
.
oid
=
jsonObject
.
getInt
(
"oid"
);
this
.
nome
=
jsonObject
.
getString
(
"name"
);
this
.
key
=
jsonObject
.
getString
(
"key"
);
this
.
streamNumber
=
jsonObject
.
getJSONArray
(
"streams"
).
length
();
}
public
int
getOid
()
{
return
oid
;
}
public
String
getNome
()
{
return
nome
;
}
public
String
getKey
()
{
return
key
;
}
public
int
getStreamNumber
()
{
return
streamNumber
;
}
}
app/src/main/java/br/com/evologica/mvp/data/db/model/Stream.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
data
.
db
.
model
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
/**
* Created by marcussales on 02/10/2017.
*/
public
class
Stream
{
private
int
oid
;
private
String
nome
;
private
String
key
;
public
Stream
(
JSONObject
jsonObject
)
throws
JSONException
{
this
.
oid
=
jsonObject
.
getInt
(
"oid"
);
this
.
nome
=
jsonObject
.
getString
(
"name"
);
this
.
key
=
jsonObject
.
getString
(
"key"
);
}
public
int
getOid
()
{
return
oid
;
}
public
String
getNome
()
{
return
nome
;
}
public
String
getKey
()
{
return
key
;
}
}
app/src/main/java/br/com/evologica/mvp/data/db/model/StreamData.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
data
.
db
.
model
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
java.util.Date
;
/**
* Created by marcussales on 02/10/2017.
*/
public
class
StreamData
{
private
Date
date
;
private
String
value
;
public
StreamData
(
JSONObject
jsonObject
)
throws
JSONException
{
this
.
date
=
new
Date
(
jsonObject
.
getLong
(
"serverTimestamp"
));
this
.
value
=
jsonObject
.
getJSONArray
(
"values"
).
getJSONObject
(
0
).
getString
(
"value"
);
}
public
Date
getDate
()
{
return
date
;
}
public
String
getValue
()
{
return
value
;
}
}
app/src/main/java/br/com/evologica/mvp/data/network/ApiHelper.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
data
.
network
;
import
com.androidnetworking.common.ANRequest
;
/**
* Created by marcussales on 02/10/2017.
*/
public
interface
ApiHelper
{
ANRequest
getAllStreams
();
ANRequest
getDetailSensor
(
int
oidSensor
);
ANRequest
getDetailStream
(
int
oidSensor
,
int
oidStream
);
}
app/src/main/java/br/com/evologica/mvp/data/network/AppApiHelper.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
data
.
network
;
import
com.androidnetworking.AndroidNetworking
;
import
com.androidnetworking.common.ANRequest
;
/**
* Created by marcussales on 02/10/2017.
*/
public
class
AppApiHelper
implements
ApiHelper
{
@Override
public
ANRequest
getAllStreams
()
{
return
AndroidNetworking
.
get
(
"http://multicast.vix.br:8082/sensors"
)
.
addHeaders
(
"X-AUTH-TOKEN"
,
"cba991ae0c38408a84cf01687c60d075"
)
.
build
();
}
@Override
public
ANRequest
getDetailSensor
(
int
oidSensor
)
{
return
AndroidNetworking
.
get
(
"http://multicast.vix.br:8082/sensors/"
+
oidSensor
)
.
addHeaders
(
"X-AUTH-TOKEN"
,
"cba991ae0c38408a84cf01687c60d075"
)
.
build
();
}
@Override
public
ANRequest
getDetailStream
(
int
oidSensor
,
int
oidStream
)
{
return
AndroidNetworking
.
get
(
"http://multicast.vix.br:8082/sensors/"
+
oidSensor
+
"/streams/"
+
oidStream
)
.
addHeaders
(
"X-AUTH-TOKEN"
,
"cba991ae0c38408a84cf01687c60d075"
)
.
build
();
}
}
app/src/main/java/br/com/evologica/mvp/ui/detailSensor/DetailSensorActivity.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
ui
.
detailSensor
;
import
android.os.Bundle
;
import
android.support.annotation.Nullable
;
import
android.support.v7.app.AppCompatActivity
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.RecyclerView
;
import
android.support.v7.widget.Toolbar
;
import
android.view.MenuItem
;
import
android.view.View
;
import
android.widget.ProgressBar
;
import
android.widget.TextView
;
import
java.util.List
;
import
br.com.evologica.mvp.MvpApp
;
import
br.com.evologica.mvp.R
;
import
br.com.evologica.mvp.data.db.model.Stream
;
/**
* Created by marcussales on 02/10/2017.
*/
public
class
DetailSensorActivity
extends
AppCompatActivity
implements
DetailSensorMvpView
{
DetailSensorMvpPresenter
<
DetailSensorMvpView
>
mPresenter
;
private
RecyclerView
listaStreams
;
private
TextView
errorText
;
private
ProgressBar
progressBar
;
private
int
sensorOid
;
@Override
protected
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_detail_sensor
);
listaStreams
=
(
RecyclerView
)
findViewById
(
R
.
id
.
list_streams
);
errorText
=
(
TextView
)
findViewById
(
R
.
id
.
error_text
);
progressBar
=
(
ProgressBar
)
findViewById
(
R
.
id
.
progress_bar
);
Toolbar
detailToolbar
=
(
Toolbar
)
findViewById
(
R
.
id
.
toolbar_detail
);
String
sensorName
=
getIntent
().
getStringExtra
(
"SENSOR_NAME"
);
detailToolbar
.
setTitle
(
sensorName
);
setSupportActionBar
(
detailToolbar
);
getSupportActionBar
().
setDisplayHomeAsUpEnabled
(
true
);
mPresenter
=
new
DetailSensorPresenter
<>(((
MvpApp
)
getApplicationContext
()).
getDataManager
());
mPresenter
.
onAttach
(
this
);
sensorOid
=
getIntent
().
getIntExtra
(
"SENSOR_OID"
,
0
);
mPresenter
.
fetchStreams
(
sensorOid
);
}
@Override
protected
void
onDestroy
()
{
mPresenter
.
onDetach
();
super
.
onDestroy
();
}
@Override
public
boolean
onOptionsItemSelected
(
MenuItem
item
)
{
switch
(
item
.
getItemId
()){
case
android
.
R
.
id
.
home
:
finish
();
break
;
}
return
true
;
}
@Override
public
void
onFetchStreamsFinished
(
List
<
Stream
>
streams
)
{
progressBar
.
setVisibility
(
View
.
GONE
);
listaStreams
.
setVisibility
(
View
.
VISIBLE
);
StreamsAdapter
adapter
=
new
StreamsAdapter
(
streams
,
this
,
sensorOid
);
listaStreams
.
setLayoutManager
(
new
LinearLayoutManager
(
this
));
listaStreams
.
setAdapter
(
adapter
);
}
@Override
public
void
onErrorFetchStreams
(
String
message
)
{
progressBar
.
setVisibility
(
View
.
GONE
);
errorText
.
setVisibility
(
View
.
VISIBLE
);
errorText
.
setText
(
message
);
}
}
app/src/main/java/br/com/evologica/mvp/ui/detailSensor/DetailSensorMvpPresenter.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
ui
.
detailSensor
;
import
br.com.evologica.mvp.ui.base.MvpPresenter
;
import
br.com.evologica.mvp.ui.base.MvpView
;
/**
* Created by marcussales on 02/10/2017.
*/
public
interface
DetailSensorMvpPresenter
<
V
extends
MvpView
>
extends
MvpPresenter
<
V
>
{
void
fetchStreams
(
int
sensorOid
);
}
app/src/main/java/br/com/evologica/mvp/ui/detailSensor/DetailSensorMvpView.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
ui
.
detailSensor
;
import
java.util.List
;
import
br.com.evologica.mvp.data.db.model.Stream
;
import
br.com.evologica.mvp.ui.base.MvpView
;
/**
* Created by marcussales on 02/10/2017.
*/
public
interface
DetailSensorMvpView
extends
MvpView
{
void
onFetchStreamsFinished
(
List
<
Stream
>
streams
);
void
onErrorFetchStreams
(
String
message
);
}
app/src/main/java/br/com/evologica/mvp/ui/detailSensor/DetailSensorPresenter.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
ui
.
detailSensor
;
import
com.androidnetworking.error.ANError
;
import
com.androidnetworking.interfaces.JSONObjectRequestListener
;
import
org.json.JSONArray
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
java.util.ArrayList
;
import
java.util.List
;
import
br.com.evologica.mvp.data.DataManager
;
import
br.com.evologica.mvp.data.db.model.Stream
;
import
br.com.evologica.mvp.ui.base.BasePresenter
;
/**
* Created by marcussales on 02/10/2017.
*/
public
class
DetailSensorPresenter
<
V
extends
DetailSensorMvpView
>
extends
BasePresenter
<
V
>
implements
DetailSensorMvpPresenter
<
V
>
{
public
DetailSensorPresenter
(
DataManager
mDataManager
)
{
super
(
mDataManager
);
}
@Override
public
void
fetchStreams
(
int
oidSensor
)
{
getDataManager
().
getDetailSensor
(
oidSensor
)
.
getAsJSONObject
(
new
JSONObjectRequestListener
()
{
@Override
public
void
onResponse
(
JSONObject
response
)
{
try
{
JSONArray
streams
=
response
.
getJSONArray
(
"streams"
);
List
<
Stream
>
streamsModel
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
streams
.
length
();
i
++){
streamsModel
.
add
(
getDataManager
().
createStream
(
streams
.
getJSONObject
(
i
)));
}
getMvpView
().
onFetchStreamsFinished
(
streamsModel
);
}
catch
(
JSONException
e
)
{
getMvpView
().
onErrorFetchStreams
(
e
.
getMessage
());
}
}
@Override
public
void
onError
(
ANError
anError
)
{
getMvpView
().
onErrorFetchStreams
(
anError
.
getMessage
());
}
});
}
}
app/src/main/java/br/com/evologica/mvp/ui/detailSensor/StreamsAdapter.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
ui
.
detailSensor
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.TextView
;
import
java.util.List
;
import
br.com.evologica.mvp.R
;
import
br.com.evologica.mvp.data.db.model.Stream
;
import
br.com.evologica.mvp.ui.detailStream.DetailStreamActivity
;
/**
* Created by marcussales on 02/10/2017.
*/
public
class
StreamsAdapter
extends
RecyclerView
.
Adapter
<
StreamsAdapter
.
ViewHolder
>
{
private
List
<
Stream
>
listaStreams
;
private
Context
context
;
private
final
int
sensorOid
;
public
StreamsAdapter
(
List
<
Stream
>
listaStreams
,
Context
context
,
int
sensorOid
)
{
this
.
listaStreams
=
listaStreams
;
this
.
context
=
context
;
this
.
sensorOid
=
sensorOid
;
}
@Override
public
ViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
stream_item
,
parent
,
false
);
return
new
ViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
ViewHolder
holder
,
int
position
)
{
Stream
stream
=
listaStreams
.
get
(
position
);
final
int
streamOid
=
stream
.
getOid
();
holder
.
nomeStream
.
setText
(
stream
.
getNome
());
holder
.
keyStream
.
setText
(
stream
.
getKey
());
holder
.
itemView
.
setOnClickListener
(
(
view
)
->
{
Intent
intent
=
new
Intent
(
context
,
DetailStreamActivity
.
class
);
intent
.
putExtra
(
"SENSOR_OID"
,
sensorOid
);
intent
.
putExtra
(
"STREAM_OID"
,
streamOid
);
context
.
startActivity
(
intent
);
}
);
}
@Override
public
int
getItemCount
()
{
return
listaStreams
.
size
();
}
public
class
ViewHolder
extends
RecyclerView
.
ViewHolder
{
TextView
nomeStream
;
TextView
keyStream
;
public
ViewHolder
(
View
itemView
)
{
super
(
itemView
);
nomeStream
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
stream_name
);
keyStream
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
stream_key
);
}
}
}
app/src/main/java/br/com/evologica/mvp/ui/detailStream/DetailStreamActivity.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
ui
.
detailStream
;
import
android.os.Bundle
;
import
android.support.annotation.Nullable
;
import
android.support.v7.app.AppCompatActivity
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.RecyclerView
;
import
android.support.v7.widget.Toolbar
;
import
android.view.MenuItem
;
import
android.view.View
;
import
android.widget.ProgressBar
;
import
android.widget.TextView
;
import
java.util.List
;
import
br.com.evologica.mvp.MvpApp
;
import
br.com.evologica.mvp.R
;
import
br.com.evologica.mvp.data.db.model.StreamData
;
/**
* Created by marcussales on 02/10/2017.
*/
public
class
DetailStreamActivity
extends
AppCompatActivity
implements
DetailStreamMvpView
{
DetailStreamMvpPresenter
<
DetailStreamMvpView
>
mPresenter
;
private
RecyclerView
listaStreamData
;
private
TextView
errorText
;
private
ProgressBar
progressBar
;
@Override
protected
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_detail_streams
);
listaStreamData
=
(
RecyclerView
)
findViewById
(
R
.
id
.
list_stream_data
);
errorText
=
(
TextView
)
findViewById
(
R
.
id
.
error_text
);
progressBar
=
(
ProgressBar
)
findViewById
(
R
.
id
.
progress_bar
);
Toolbar
detailStreamToolbar
=
(
Toolbar
)
findViewById
(
R
.
id
.
toolbar_detail_stream
);
detailStreamToolbar
.
setTitle
(
"Stream"
);
setSupportActionBar
(
detailStreamToolbar
);
getSupportActionBar
().
setDisplayHomeAsUpEnabled
(
true
);
mPresenter
=
new
DetailStreamPresenter
<>(((
MvpApp
)
getApplicationContext
()).
getDataManager
());
mPresenter
.
onAttach
(
this
);
int
sensorOid
=
getIntent
().
getIntExtra
(
"SENSOR_OID"
,
0
);
int
streamOid
=
getIntent
().
getIntExtra
(
"STREAM_OID"
,
0
);
mPresenter
.
fetchStreamsData
(
sensorOid
,
streamOid
);
}
@Override
protected
void
onDestroy
()
{
mPresenter
.
onDetach
();
super
.
onDestroy
();
}
@Override
public
boolean
onOptionsItemSelected
(
MenuItem
item
)
{
switch
(
item
.
getItemId
()){
case
android
.
R
.
id
.
home
:
finish
();
break
;
}
return
true
;
}
@Override
public
void
onFetchStreamsDataFinished
(
List
<
StreamData
>
response
)
{
progressBar
.
setVisibility
(
View
.
GONE
);
listaStreamData
.
setVisibility
(
View
.
VISIBLE
);
StreamDataAdapter
adapter
=
new
StreamDataAdapter
(
response
,
this
);
listaStreamData
.
setLayoutManager
(
new
LinearLayoutManager
(
this
));
listaStreamData
.
setAdapter
(
adapter
);
}
@Override
public
void
onErrorFetchStreamsData
(
String
message
)
{
progressBar
.
setVisibility
(
View
.
GONE
);
errorText
.
setVisibility
(
View
.
VISIBLE
);
errorText
.
setText
(
message
);
}
}
app/src/main/java/br/com/evologica/mvp/ui/detailStream/DetailStreamMvpPresenter.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
ui
.
detailStream
;
import
br.com.evologica.mvp.ui.base.MvpPresenter
;
import
br.com.evologica.mvp.ui.base.MvpView
;
/**
* Created by marcussales on 02/10/2017.
*/
public
interface
DetailStreamMvpPresenter
<
V
extends
MvpView
>
extends
MvpPresenter
<
V
>
{
void
fetchStreamsData
(
int
sensorOid
,
int
streamOid
);
}
app/src/main/java/br/com/evologica/mvp/ui/detailStream/DetailStreamMvpView.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
ui
.
detailStream
;
import
java.util.List
;
import
br.com.evologica.mvp.data.db.model.StreamData
;
import
br.com.evologica.mvp.ui.base.MvpView
;
/**
* Created by marcussales on 02/10/2017.
*/
public
interface
DetailStreamMvpView
extends
MvpView
{
void
onFetchStreamsDataFinished
(
List
<
StreamData
>
response
);
void
onErrorFetchStreamsData
(
String
message
);
}
app/src/main/java/br/com/evologica/mvp/ui/detailStream/DetailStreamPresenter.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
ui
.
detailStream
;
import
com.androidnetworking.error.ANError
;
import
com.androidnetworking.interfaces.JSONObjectRequestListener
;
import
org.json.JSONArray
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
java.util.ArrayList
;
import
java.util.List
;
import
br.com.evologica.mvp.data.DataManager
;
import
br.com.evologica.mvp.data.db.model.StreamData
;
import
br.com.evologica.mvp.ui.base.BasePresenter
;
/**
* Created by marcussales on 02/10/2017.
*/
public
class
DetailStreamPresenter
<
V
extends
DetailStreamMvpView
>
extends
BasePresenter
<
V
>
implements
DetailStreamMvpPresenter
<
V
>
{
public
DetailStreamPresenter
(
DataManager
mDataManager
)
{
super
(
mDataManager
);
}
@Override
public
void
fetchStreamsData
(
int
sensorOid
,
int
streamOid
)
{
getDataManager
().
getDetailStream
(
sensorOid
,
streamOid
)
.
getAsJSONObject
(
new
JSONObjectRequestListener
()
{
@Override
public
void
onResponse
(
JSONObject
response
)
{
try
{
JSONArray
streams
=
response
.
getJSONArray
(
"data"
);
List
<
StreamData
>
streamsModel
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
streams
.
length
();
i
++){
streamsModel
.
add
(
getDataManager
().
createStreamData
(
streams
.
getJSONObject
(
i
)));
}
getMvpView
().
onFetchStreamsDataFinished
(
streamsModel
);
}
catch
(
JSONException
e
)
{
getMvpView
().
onErrorFetchStreamsData
(
e
.
getMessage
());
}
}
@Override
public
void
onError
(
ANError
anError
)
{
getMvpView
().
onErrorFetchStreamsData
(
anError
.
getMessage
());
}
});
}
}
app/src/main/java/br/com/evologica/mvp/ui/detailStream/StreamDataAdapter.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
ui
.
detailStream
;
import
android.content.Context
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.TextView
;
import
java.text.SimpleDateFormat
;
import
java.util.List
;
import
java.util.Locale
;
import
br.com.evologica.mvp.R
;
import
br.com.evologica.mvp.data.db.model.StreamData
;
/**
* Created by marcussales on 02/10/2017.
*/
public
class
StreamDataAdapter
extends
RecyclerView
.
Adapter
<
StreamDataAdapter
.
ViewHolder
>
{
private
List
<
StreamData
>
listaDadosStream
;
private
Context
context
;
public
StreamDataAdapter
(
List
<
StreamData
>
listaDadosStream
,
Context
context
)
{
this
.
listaDadosStream
=
listaDadosStream
;
this
.
context
=
context
;
}
@Override
public
ViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
stream_data_item
,
parent
,
false
);
return
new
ViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
ViewHolder
holder
,
int
position
)
{
StreamData
streamData
=
listaDadosStream
.
get
(
position
);
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"dd/MM/yyyy"
,
Locale
.
getDefault
());
holder
.
streamTimestamp
.
setText
(
format
.
format
(
streamData
.
getDate
()));
holder
.
streamValue
.
setText
(
streamData
.
getValue
());
}
@Override
public
int
getItemCount
()
{
return
listaDadosStream
.
size
();
}
public
class
ViewHolder
extends
RecyclerView
.
ViewHolder
{
TextView
streamTimestamp
;
TextView
streamValue
;
public
ViewHolder
(
View
itemView
)
{
super
(
itemView
);
streamTimestamp
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
stream_item_timestamp
);
streamValue
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
stream_item_value
);
}
}
}
app/src/main/java/br/com/evologica/mvp/ui/login/LoginActivity.java
deleted
100644 → 0
View file @
9126897d
package
br
.
com
.
evologica
.
mvp
.
ui
.
login
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.support.annotation.Nullable
;
import
android.support.v7.app.AppCompatActivity
;
import
br.com.evologica.mvp.MvpApp
;
import
br.com.evologica.mvp.R
;
import
br.com.evologica.mvp.ui.main.MainActivity
;
/**
* Created by marcussales on 01/03/2017.
*/
public
class
LoginActivity
extends
AppCompatActivity
implements
LoginMvpView
{
private
static
final
String
TAG
=
"LoginActivity"
;
LoginMvpPresenter
<
LoginMvpView
>
mPresenter
;
@Override
protected
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_login
);
mPresenter
=
new
LoginPresenter
<>(((
MvpApp
)
getApplicationContext
()).
getDataManager
());
mPresenter
.
onAttach
(
LoginActivity
.
this
);
}
@Override
public
void
openMainActivity
()
{
Intent
intent
=
new
Intent
(
this
,
MainActivity
.
class
);
startActivity
(
intent
);
finish
();
}
@Override
protected
void
onDestroy
()
{
mPresenter
.
onDetach
();
super
.
onDestroy
();
}
}
app/src/main/java/br/com/evologica/mvp/ui/login/LoginMvpPresenter.java
deleted
100644 → 0
View file @
9126897d
package
br
.
com
.
evologica
.
mvp
.
ui
.
login
;
import
br.com.evologica.mvp.ui.base.MvpPresenter
;
/**
* Created by marcussales on 01/03/2017.
*/
public
interface
LoginMvpPresenter
<
V
extends
LoginMvpView
>
extends
MvpPresenter
<
V
>
{
void
onLogin
(
String
email
,
String
password
);
}
app/src/main/java/br/com/evologica/mvp/ui/login/LoginMvpView.java
deleted
100644 → 0
View file @
9126897d
package
br
.
com
.
evologica
.
mvp
.
ui
.
login
;
import
br.com.evologica.mvp.ui.base.MvpView
;
/**
* Created by marcussales on 01/03/2017.
*/
public
interface
LoginMvpView
extends
MvpView
{
void
openMainActivity
();
}
app/src/main/java/br/com/evologica/mvp/ui/login/LoginPresenter.java
deleted
100644 → 0
View file @
9126897d
package
br
.
com
.
evologica
.
mvp
.
ui
.
login
;
import
br.com.evologica.mvp.data.DataManager
;
import
br.com.evologica.mvp.ui.base.BasePresenter
;
/**
* Created by marcussales on 01/03/2017.
*/
public
class
LoginPresenter
<
V
extends
LoginMvpView
>
extends
BasePresenter
<
V
>
implements
LoginMvpPresenter
<
V
>
{
private
static
final
String
TAG
=
"LoginPresenter"
;
public
LoginPresenter
(
DataManager
dataManager
)
{
super
(
dataManager
);
}
@Override
public
void
onLogin
(
String
email
,
String
password
)
{
}
}
\ No newline at end of file
app/src/main/java/br/com/evologica/mvp/ui/main/MainActivity.java
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
ui
.
main
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.support.annotation.Nullable
;
import
android.support.v7.app.AppCompatActivity
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.RecyclerView
;
import
android.support.v7.widget.Toolbar
;
import
android.view.View
;
import
android.widget.ProgressBar
;
import
android.widget.TextView
;
import
java.util.List
;
import
br.com.evologica.mvp.MvpApp
;
import
br.com.evologica.mvp.R
;
import
br.com.evologica.mvp.
ui.login.LoginActivity
;
import
br.com.evologica.mvp.
data.db.model.Sensor
;
/**
* Created by marcussales on 01/03/2017.
...
...
@@ -17,20 +24,26 @@ public class MainActivity extends AppCompatActivity implements MainMvpView {
MainMvpPresenter
<
MainMvpView
>
mPresenter
;
private
RecyclerView
listaSensores
;
private
TextView
errorText
;
private
ProgressBar
progressBar
;
@Override
protected
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_main
);
mPresenter
=
new
MainPresenter
<>(((
MvpApp
)
getApplicationContext
()).
getDataManager
());
mPresenter
.
onAttach
(
MainActivity
.
this
);
}
listaSensores
=
(
RecyclerView
)
findViewById
(
R
.
id
.
list_sensor
);
errorText
=
(
TextView
)
findViewById
(
R
.
id
.
error_text
);
progressBar
=
(
ProgressBar
)
findViewById
(
R
.
id
.
progress_bar
);
Toolbar
mainToolbar
=
(
Toolbar
)
findViewById
(
R
.
id
.
toolbar_main
);
@Override
public
void
openLoginActivity
()
{
Intent
intent
=
new
Intent
(
this
,
LoginActivity
.
class
);
startActivity
(
intent
);
finish
();
mainToolbar
.
setTitle
(
"Sensores"
);
setSupportActionBar
(
mainToolbar
);
mPresenter
=
new
MainPresenter
<>(((
MvpApp
)
getApplicationContext
()).
getDataManager
());
mPresenter
.
onAttach
(
MainActivity
.
this
);
mPresenter
.
fetchSensors
();
}
@Override
...
...
@@ -39,4 +52,19 @@ public class MainActivity extends AppCompatActivity implements MainMvpView {
super
.
onDestroy
();
}
@Override
public
void
onFetchSensorsFinished
(
List
<
Sensor
>
sensores
)
{
progressBar
.
setVisibility
(
View
.
GONE
);
listaSensores
.
setVisibility
(
View
.
VISIBLE
);
SensoresAdapter
adapter
=
new
SensoresAdapter
(
sensores
,
this
);
listaSensores
.
setLayoutManager
(
new
LinearLayoutManager
(
this
));
listaSensores
.
setAdapter
(
adapter
);
}
@Override
public
void
onErrorFetchSensors
(
String
message
)
{
progressBar
.
setVisibility
(
View
.
GONE
);
errorText
.
setVisibility
(
View
.
VISIBLE
);
errorText
.
setText
(
message
);
}
}
app/src/main/java/br/com/evologica/mvp/ui/main/MainMvpPresenter.java
View file @
99f293ea
...
...
@@ -9,5 +9,5 @@ import br.com.evologica.mvp.ui.base.MvpView;
public
interface
MainMvpPresenter
<
V
extends
MvpView
>
extends
MvpPresenter
<
V
>
{
void
onLogout
();
void
fetchSensors
();
}
app/src/main/java/br/com/evologica/mvp/ui/main/MainMvpView.java
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
ui
.
main
;
import
java.util.List
;
import
br.com.evologica.mvp.data.db.model.Sensor
;
import
br.com.evologica.mvp.ui.base.MvpView
;
/**
...
...
@@ -7,5 +10,6 @@ import br.com.evologica.mvp.ui.base.MvpView;
*/
public
interface
MainMvpView
extends
MvpView
{
void
openLoginActivity
();
void
onFetchSensorsFinished
(
List
<
Sensor
>
sensores
);
void
onErrorFetchSensors
(
String
message
);
}
app/src/main/java/br/com/evologica/mvp/ui/main/MainPresenter.java
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
ui
.
main
;
import
com.androidnetworking.error.ANError
;
import
com.androidnetworking.interfaces.JSONArrayRequestListener
;
import
org.json.JSONArray
;
import
org.json.JSONException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
br.com.evologica.mvp.data.DataManager
;
import
br.com.evologica.mvp.data.db.model.Sensor
;
import
br.com.evologica.mvp.ui.base.BasePresenter
;
public
class
MainPresenter
<
V
extends
MainMvpView
>
extends
BasePresenter
<
V
>
implements
MainMvpPresenter
<
V
>
{
...
...
@@ -10,7 +20,26 @@ public class MainPresenter<V extends MainMvpView> extends BasePresenter<V> imple
}
@Override
public
void
onLogout
()
{
public
void
fetchSensors
()
{
getDataManager
().
getAllStreams
()
.
getAsJSONArray
(
new
JSONArrayRequestListener
()
{
@Override
public
void
onResponse
(
JSONArray
response
)
{
try
{
List
<
Sensor
>
sensores
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
response
.
length
();
i
++){
sensores
.
add
(
getDataManager
().
createSensor
(
response
.
getJSONObject
(
i
)));
}
getMvpView
().
onFetchSensorsFinished
(
sensores
);
}
catch
(
JSONException
e
)
{
getMvpView
().
onErrorFetchSensors
(
e
.
getMessage
());
}
}
@Override
public
void
onError
(
ANError
anError
)
{
getMvpView
().
onErrorFetchSensors
(
anError
.
getMessage
());
}
});
}
}
app/src/main/java/br/com/evologica/mvp/ui/main/SensoresAdapter.java
0 → 100644
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
ui
.
main
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.TextView
;
import
java.util.List
;
import
br.com.evologica.mvp.R
;
import
br.com.evologica.mvp.data.db.model.Sensor
;
import
br.com.evologica.mvp.ui.detailSensor.DetailSensorActivity
;
/**
* Created by marcussales on 02/10/2017.
*/
public
class
SensoresAdapter
extends
RecyclerView
.
Adapter
<
SensoresAdapter
.
ViewHolder
>
{
private
List
<
Sensor
>
listaSensores
;
private
Context
context
;
public
SensoresAdapter
(
List
<
Sensor
>
listaSensores
,
Context
context
)
{
this
.
listaSensores
=
listaSensores
;
this
.
context
=
context
;
}
@Override
public
ViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
sensor_item
,
parent
,
false
);
return
new
ViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
ViewHolder
holder
,
int
position
)
{
Sensor
sensor
=
listaSensores
.
get
(
position
);
final
String
nomeSensor
=
sensor
.
getNome
();
final
int
sensorOid
=
sensor
.
getOid
();
holder
.
nomeSensor
.
setText
(
nomeSensor
);
holder
.
keySensor
.
setText
(
sensor
.
getKey
());
String
streamNumber
=
sensor
.
getStreamNumber
()
+
" streams"
;
holder
.
numeroStreams
.
setText
(
streamNumber
);
holder
.
itemView
.
setOnClickListener
(
(
view
)
->
{
Intent
intent
=
new
Intent
(
context
,
DetailSensorActivity
.
class
);
intent
.
putExtra
(
"SENSOR_NAME"
,
nomeSensor
);
intent
.
putExtra
(
"SENSOR_OID"
,
sensorOid
);
context
.
startActivity
(
intent
);
}
);
}
@Override
public
int
getItemCount
()
{
return
listaSensores
.
size
();
}
public
class
ViewHolder
extends
RecyclerView
.
ViewHolder
{
TextView
nomeSensor
;
TextView
keySensor
;
TextView
numeroStreams
;
public
ViewHolder
(
View
itemView
)
{
super
(
itemView
);
nomeSensor
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
sensor_name
);
keySensor
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
sensor_key
);
numeroStreams
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
streams_number
);
}
}
}
app/src/main/java/br/com/evologica/mvp/ui/splash/SplashActivity.java
View file @
99f293ea
...
...
@@ -7,7 +7,6 @@ import android.support.v7.app.AppCompatActivity;
import
br.com.evologica.mvp.MvpApp
;
import
br.com.evologica.mvp.R
;
import
br.com.evologica.mvp.ui.login.LoginActivity
;
import
br.com.evologica.mvp.ui.main.MainActivity
;
public
class
SplashActivity
extends
AppCompatActivity
implements
SplashMvpView
{
...
...
@@ -22,13 +21,6 @@ public class SplashActivity extends AppCompatActivity implements SplashMvpView {
mPresenter
.
onAttach
(
SplashActivity
.
this
);
}
@Override
public
void
openLoginActivity
()
{
Intent
intent
=
new
Intent
(
this
,
LoginActivity
.
class
);
startActivity
(
intent
);
finish
();
}
@Override
public
void
openMainActivity
()
{
Intent
intent
=
new
Intent
(
this
,
MainActivity
.
class
);
...
...
app/src/main/java/br/com/evologica/mvp/ui/splash/SplashMvpView.java
View file @
99f293ea
...
...
@@ -8,7 +8,5 @@ import br.com.evologica.mvp.ui.base.MvpView;
public
interface
SplashMvpView
extends
MvpView
{
void
openLoginActivity
();
void
openMainActivity
();
}
app/src/main/java/br/com/evologica/mvp/ui/splash/SplashPresenter.java
View file @
99f293ea
...
...
@@ -13,10 +13,6 @@ public class SplashPresenter<V extends SplashMvpView> extends BasePresenter<V> i
public
void
onAttach
(
V
mvpView
)
{
super
.
onAttach
(
mvpView
);
if
(!
getDataManager
().
isLogged
()){
getMvpView
().
openLoginActivity
();
}
else
{
getMvpView
().
openMainActivity
();
}
getMvpView
().
openMainActivity
();
}
}
app/src/main/java/br/com/evologica/mvp/utils/CommonUtils.java
View file @
99f293ea
package
br
.
com
.
evologica
.
mvp
.
utils
;
import
android.app.ProgressDialog
;
import
android.content.Context
;
import
android.graphics.Color
;
import
android.graphics.drawable.ColorDrawable
;
import
br.com.evologica.mvp.R
;
/**
* Created by marcussales on 02/03/2017.
*/
...
...
@@ -18,17 +11,4 @@ public final class CommonUtils {
private
CommonUtils
()
{
// This utility class is not publicly instantiable
}
public
static
ProgressDialog
showLoadingDialog
(
Context
context
)
{
ProgressDialog
progressDialog
=
new
ProgressDialog
(
context
);
progressDialog
.
show
();
if
(
progressDialog
.
getWindow
()
!=
null
)
{
progressDialog
.
getWindow
().
setBackgroundDrawable
(
new
ColorDrawable
(
Color
.
TRANSPARENT
));
}
progressDialog
.
setContentView
(
R
.
layout
.
progress_dialog
);
progressDialog
.
setIndeterminate
(
true
);
progressDialog
.
setCancelable
(
true
);
progressDialog
.
setCanceledOnTouchOutside
(
false
);
return
progressDialog
;
}
}
app/src/main/res/layout/activity_detail_sensor.xml
0 → 100644
View file @
99f293ea
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:orientation=
"vertical"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<android.support.v7.widget.Toolbar
android:id=
"@+id/toolbar_detail"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:titleTextColor=
"@color/white"
android:background=
"@color/navy_blue"
/>
<ProgressBar
android:id=
"@+id/progress_bar"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_gravity=
"center"
android:visibility=
"visible"
/>
<TextView
android:id=
"@+id/error_text"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:gravity=
"center"
android:text=
"Error no fetch"
android:visibility=
"gone"
/>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/list_streams"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:visibility=
"gone"
/>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/activity_detail_streams.xml
0 → 100644
View file @
99f293ea
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:orientation=
"vertical"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<android.support.v7.widget.Toolbar
android:id=
"@+id/toolbar_detail_stream"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:titleTextColor=
"@color/white"
android:background=
"@color/navy_blue"
/>
<ProgressBar
android:id=
"@+id/progress_bar"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_gravity=
"center"
android:visibility=
"visible"
/>
<TextView
android:id=
"@+id/error_text"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:gravity=
"center"
android:text=
"Erro no fetch"
android:visibility=
"gone"
/>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/list_stream_data"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:visibility=
"gone"
/>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/activity_main.xml
View file @
99f293ea
...
...
@@ -16,80 +16,34 @@
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_height=
"match_parent"
android:layout_width=
"match_parent"
>
<Button
android:id=
"@+id/logout_button"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"LOGOUT"
/>
</LinearLayout>
<!--<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"-->
<!--xmlns:app="http://schemas.android.com/apk/res-auto"-->
<!--android:id="@+id/drawer_view"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!--android:fitsSystemWindows="true">-->
<!--<android.support.design.widget.CoordinatorLayout-->
<!--android:id="@+id/cl_root_view"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!--android:clipChildren="false">-->
<!--<LinearLayout-->
<!--android:id="@+id/activity_main"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!--android:orientation="vertical">-->
<!--<android.support.design.widget.AppBarLayout-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--app:elevation="5dp">-->
<!--<android.support.v7.widget.Toolbar-->
<!--android:id="@+id/toolbar"-->
<!--style="@style/Toolbar"-->
<!--app:subtitleTextColor="@color/white"-->
<!--app:title="@string/app_name"-->
<!--app:titleTextAppearance="@style/Toolbar.TitleText"-->
<!--app:titleTextColor="@color/white" />-->
<!--<View-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="1dp"-->
<!--android:background="@color/light_gray" />-->
android:layout_width=
"match_parent"
android:orientation=
"vertical"
>
<!--</android.support.design.widget.AppBarLayout>-->
<!--<com.mindorks.placeholderview.SwipePlaceHolderView-->
<!--android:id="@+id/cards_container"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent" />-->
<!--</LinearLayout>-->
<!--</android.support.design.widget.CoordinatorLayout>-->
<!--<!–<android.support.design.widget.NavigationView–>-->
<!--<!–android:id="@+id/navigation_view"–>-->
<!--<!–style="@style/Widget.Design.NavigationView"–>-->
<!--<!–android:layout_width="wrap_content"–>-->
<!--<!–android:layout_height="match_parent"–>-->
<!--<!–android:layout_gravity="start"–>-->
<!--<!–android:background="@color/white"–>-->
<!--<!–app:headerLayout="@layout/drawer_header"–>-->
<!--<!–app:itemBackground="@color/white"–>-->
<!--<!–app:itemIconTint="@color/black_effective"–>-->
<!--<!–app:itemTextColor="@color/black_effective"–>-->
<!--<!–app:menu="@menu/drawer">–>-->
<!--<!–<TextView–>-->
<!--<!–android:id="@+id/tv_app_version"–>-->
<!--<!–style="@style/TextStyle.Title.Sub"–>-->
<!--<!–android:layout_width="wrap_content"–>-->
<!--<!–android:layout_height="wrap_content"–>-->
<!--<!–android:layout_gravity="bottom|end"–>-->
<!--<!–android:padding="5dp" />–>-->
<!--<!–</android.support.design.widget.NavigationView>–>-->
<!--</android.support.v4.widget.DrawerLayout>-->
\ No newline at end of file
<android.support.v7.widget.Toolbar
android:id=
"@+id/toolbar_main"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:titleTextColor=
"@color/white"
android:background=
"@color/navy_blue"
/>
<ProgressBar
android:id=
"@+id/progress_bar"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_gravity=
"center"
android:visibility=
"visible"
/>
<TextView
android:id=
"@+id/error_text"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:gravity=
"center"
android:text=
"Error no fetch"
android:visibility=
"gone"
/>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/list_sensor"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:visibility=
"gone"
/>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/progress_dialog.xml
deleted
100644 → 0
View file @
9126897d
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2017 MINDORKS NEXTGEN PRIVATE LIMITED
~ 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
~
~ https://mindorks.com/license/apache-v2
~
~ 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
-->
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:background=
"@android:color/transparent"
>
<ProgressBar
android:id=
"@+id/pb_loading"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerInParent=
"true"
android:progressDrawable=
"@color/black_effective"
/>
</RelativeLayout>
\ No newline at end of file
app/src/main/res/layout/sensor_item.xml
0 → 100644
View file @
99f293ea
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:orientation=
"vertical"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:padding=
"8dp"
>
<TextView
android:id=
"@+id/sensor_name"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Freeza"
/>
<TextView
android:id=
"@+id/sensor_key"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Key: ae194d2b61e0496fbf601f9edcf8b0c5"
/>
<TextView
android:id=
"@+id/streams_number"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"3 streams"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"2px"
android:background=
"@color/light_gray"
/>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/stream_data_item.xml
0 → 100644
View file @
99f293ea
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:padding=
"8dp"
>
<LinearLayout
android:orientation=
"horizontal"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Data: "
/>
<TextView
android:id=
"@+id/stream_item_timestamp"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Freeza"
android:layout_weight=
"1"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Valor: "
/>
<TextView
android:id=
"@+id/stream_item_value"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"29.1"
android:layout_weight=
"1"
/>
</LinearLayout>
<View
android:layout_width=
"match_parent"
android:layout_height=
"2px"
android:background=
"@color/light_gray"
android:layout_gravity=
"bottom"
/>
</FrameLayout>
app/src/main/res/layout/stream_item.xml
0 → 100644
View file @
99f293ea
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:orientation=
"vertical"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:padding=
"8dp"
>
<TextView
android:id=
"@+id/stream_name"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Freeza"
/>
<TextView
android:id=
"@+id/stream_key"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Key: ae194d2b61e0496fbf601f9edcf8b0c5"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"2px"
android:background=
"@color/light_gray"
/>
</LinearLayout>
\ 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