Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
B
BLEPrivacyPolicyNegotiator
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
idic
BLEPrivacyPolicyNegotiator
Commits
5d116ce2
An error occurred while fetching merge requests data.
Commit
5d116ce2
authored
7 years ago
by
idic
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
畫面 Fix
parent
9a0ab3b5
Changes
48
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
48 changed files
with
798 additions
and
1416 deletions
+798
-1416
.idea/runConfigurations.xml
.idea/runConfigurations.xml
+12
-0
app/src/main/AndroidManifest.xml
app/src/main/AndroidManifest.xml
+4
-8
app/src/main/java/org/prlab/idic/privacypolicy/DeviceOperatorActivity.java
.../org/prlab/idic/privacypolicy/DeviceOperatorActivity.java
+6
-40
app/src/main/java/org/prlab/idic/privacypolicy/DialogDeviceInfoActivity.java
...rg/prlab/idic/privacypolicy/DialogDeviceInfoActivity.java
+9
-7
app/src/main/java/org/prlab/idic/privacypolicy/DialogPolicyDetailActivity.java
.../prlab/idic/privacypolicy/DialogPolicyDetailActivity.java
+0
-93
app/src/main/java/org/prlab/idic/privacypolicy/ReportActivity.java
...ain/java/org/prlab/idic/privacypolicy/ReportActivity.java
+50
-166
app/src/main/java/org/prlab/idic/privacypolicy/adapter/IconItemRecyclerViewAdapter.java
...ic/privacypolicy/adapter/IconItemRecyclerViewAdapter.java
+1
-0
app/src/main/java/org/prlab/idic/privacypolicy/adapter/InfoItemRecyclerViewAdapter.java
...ic/privacypolicy/adapter/InfoItemRecyclerViewAdapter.java
+21
-19
app/src/main/java/org/prlab/idic/privacypolicy/adapter/IntegerButtonRecyclerViewAdapter.java
...ivacypolicy/adapter/IntegerButtonRecyclerViewAdapter.java
+0
-88
app/src/main/java/org/prlab/idic/privacypolicy/adapter/PolicyRecyclerViewAdapter.java
...idic/privacypolicy/adapter/PolicyRecyclerViewAdapter.java
+201
-0
app/src/main/java/org/prlab/idic/privacypolicy/adapter/ScanResultRecyclerViewAdapter.java
.../privacypolicy/adapter/ScanResultRecyclerViewAdapter.java
+2
-1
app/src/main/java/org/prlab/idic/privacypolicy/adapter/StatementRecyclerViewAdapter.java
...c/privacypolicy/adapter/StatementRecyclerViewAdapter.java
+0
-154
app/src/main/java/org/prlab/idic/privacypolicy/adapter/StringButtonRecyclerViewAdapter.java
...rivacypolicy/adapter/StringButtonRecyclerViewAdapter.java
+0
-77
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/Layer.java
.../java/org/prlab/idic/privacypolicy/pojo/report/Layer.java
+0
-62
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/PrivacyPolicy.java
...g/prlab/idic/privacypolicy/pojo/report/PrivacyPolicy.java
+18
-0
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/PrivacyPolicyReport.java
...b/idic/privacypolicy/pojo/report/PrivacyPolicyReport.java
+16
-14
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/device/Manufacturer.java
...b/idic/privacypolicy/pojo/report/device/Manufacturer.java
+17
-1
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/device/Model.java
...rg/prlab/idic/privacypolicy/pojo/report/device/Model.java
+17
-1
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/p3p/Collector.java
...g/prlab/idic/privacypolicy/pojo/report/p3p/Collector.java
+28
-13
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/p3p/Datum.java
...a/org/prlab/idic/privacypolicy/pojo/report/p3p/Datum.java
+19
-1
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/p3p/Dispute.java
...org/prlab/idic/privacypolicy/pojo/report/p3p/Dispute.java
+15
-1
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/p3p/Purpose.java
...org/prlab/idic/privacypolicy/pojo/report/p3p/Purpose.java
+16
-1
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/p3p/Recipient.java
...g/prlab/idic/privacypolicy/pojo/report/p3p/Recipient.java
+18
-1
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/p3p/Remedy.java
.../org/prlab/idic/privacypolicy/pojo/report/p3p/Remedy.java
+36
-5
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/p3p/Statement.java
...g/prlab/idic/privacypolicy/pojo/report/p3p/Statement.java
+12
-21
app/src/main/java/org/prlab/idic/privacypolicy/storage/PrivacyPolicyContract.java
...lab/idic/privacypolicy/storage/PrivacyPolicyContract.java
+4
-11
app/src/main/java/org/prlab/idic/privacypolicy/storage/PrivacyPolicyDbHelper.java
...lab/idic/privacypolicy/storage/PrivacyPolicyDbHelper.java
+4
-2
app/src/main/java/org/prlab/idic/privacypolicy/storage/PrivacyPolicyProvider.java
...lab/idic/privacypolicy/storage/PrivacyPolicyProvider.java
+7
-4
app/src/main/java/org/prlab/idic/privacypolicy/storage/PrivacyPolicyStorageImpl.java
.../idic/privacypolicy/storage/PrivacyPolicyStorageImpl.java
+40
-116
app/src/main/java/org/prlab/idic/privacypolicy/storage/StorageInterface.java
...rg/prlab/idic/privacypolicy/storage/StorageInterface.java
+4
-4
app/src/main/java/org/prlab/idic/privacypolicy/tool/BaseUtils.java
...ain/java/org/prlab/idic/privacypolicy/tool/BaseUtils.java
+6
-16
app/src/main/res/drawable/ic_arrow_drop_down_black_24dp.xml
app/src/main/res/drawable/ic_arrow_drop_down_black_24dp.xml
+9
-0
app/src/main/res/drawable/ic_arrow_drop_up_black_24dp.xml
app/src/main/res/drawable/ic_arrow_drop_up_black_24dp.xml
+9
-0
app/src/main/res/layout/actiivty_dialog_device_info.xml
app/src/main/res/layout/actiivty_dialog_device_info.xml
+4
-19
app/src/main/res/layout/activity_dialog_policy.xml
app/src/main/res/layout/activity_dialog_policy.xml
+0
-127
app/src/main/res/layout/activity_report.xml
app/src/main/res/layout/activity_report.xml
+42
-94
app/src/main/res/layout/item_key_value_horizontally.xml
app/src/main/res/layout/item_key_value_horizontally.xml
+0
-32
app/src/main/res/layout/item_key_value_horizontally_left.xml
app/src/main/res/layout/item_key_value_horizontally_left.xml
+0
-31
app/src/main/res/layout/recycler_view_child_policies.xml
app/src/main/res/layout/recycler_view_child_policies.xml
+0
-16
app/src/main/res/layout/recycler_view_item.xml
app/src/main/res/layout/recycler_view_item.xml
+0
-17
app/src/main/res/layout/recycler_view_item_horizontally.xml
app/src/main/res/layout/recycler_view_item_horizontally.xml
+29
-6
app/src/main/res/layout/recycler_view_policy.xml
app/src/main/res/layout/recycler_view_policy.xml
+72
-0
app/src/main/res/layout/recycler_view_policy_content.xml
app/src/main/res/layout/recycler_view_policy_content.xml
+31
-0
app/src/main/res/layout/recycler_view_statement.xml
app/src/main/res/layout/recycler_view_statement.xml
+0
-137
app/src/main/res/values/colors.xml
app/src/main/res/values/colors.xml
+1
-0
app/src/main/res/values/dimens.xml
app/src/main/res/values/dimens.xml
+3
-0
app/src/main/res/values/strings.xml
app/src/main/res/values/strings.xml
+13
-10
app/src/main/res/values/styles.xml
app/src/main/res/values/styles.xml
+2
-0
No files found.
.idea/runConfigurations.xml
0 → 100644
View file @
5d116ce2
<?xml version="1.0" encoding="UTF-8"?>
<project
version=
"4"
>
<component
name=
"RunConfigurationProducerService"
>
<option
name=
"ignoredProducers"
>
<set>
<option
value=
"org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer"
/>
<option
value=
"org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer"
/>
<option
value=
"org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer"
/>
</set>
</option>
</component>
</project>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/AndroidManifest.xml
View file @
5d116ce2
...
...
@@ -26,17 +26,13 @@
<activity
android:name=
".ReportActivity"
android:label=
"@string/app_name"
android:theme=
"@style/AppTheme"
/>
<activity
android:name=
".DialogPolicyDetailActivity"
android:theme=
"@style/AppTheme"
/>
android:label=
"Report Information"
android:parentActivityName=
".MainActivity"
/>
<activity
android:name=
".DialogDeviceInfoActivity"
android:
label=
"@string/message_device_information
"
android:
theme=
"@style/AppTheme
"
/>
android:
theme=
"@style/AppDialogTheme
"
android:
label=
"Device Information
"
/>
<provider
android:name=
".storage.PrivacyPolicyProvider"
...
...
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/DeviceOperatorActivity.java
View file @
5d116ce2
...
...
@@ -16,13 +16,12 @@ import org.prlab.idic.privacypolicy.adapter.MessageRecyclerViewAdapter;
import
org.prlab.idic.privacypolicy.ble.BLECustomScript
;
import
org.prlab.idic.privacypolicy.pojo.Message
;
import
org.prlab.idic.privacypolicy.schedule.Scheduled
;
import
org.prlab.idic.privacypolicy.storage.PrivacyPolicyContract
;
import
org.prlab.idic.privacypolicy.storage.PrivacyPolicyStorageImpl
;
import
org.prlab.idic.privacypolicy.tool.BaseUtils
;
import
java.util.HashSet
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.UUID
;
import
static
android
.
bluetooth
.
BluetoothGatt
.
GATT_SUCCESS
;
...
...
@@ -200,45 +199,12 @@ public class DeviceOperatorActivity extends AppCompatActivity {
actionCharacteristic
=
permissionService
.
getCharacteristic
(
PRIVACY_ACTION_UUID
);
preferenceCharacteristic
=
permissionService
.
getCharacteristic
(
PRIVACY_PREFERENCE_UUID
);
Set
<
Integer
>
acceptList
=
new
HashSet
<>();
List
<
List
<
Integer
>>
subAcceptList
=
new
LinkedList
<>();
setMessageBar
(
"Enable privacy policy setting."
);
for
(
BluetoothGattService
service
:
gatt
.
getServices
())
{
if
(
PRIVACY_NEGOTIATION_UUID
.
equals
(
service
.
getUuid
()))
continue
;
List
<
String
>
layerUUIDs
=
new
LinkedList
<>();
layerUUIDs
.
add
(
String
.
valueOf
(
service
.
getUuid
()));
List
<
Integer
>
selections
=
mPolicyStorage
.
get
(
layerUUIDs
);
for
(
int
selection
:
selections
)
{
acceptList
.
add
(
selection
);
}
for
(
BluetoothGattCharacteristic
characteristic
:
service
.
getCharacteristics
())
{
layerUUIDs
.
add
(
String
.
valueOf
(
characteristic
.
getUuid
()));
selections
=
mPolicyStorage
.
get
(
layerUUIDs
);
if
(
selections
.
size
()
>
0
)
{
List
<
Integer
>
list
=
new
LinkedList
<>();
for
(
int
selection
:
selections
)
{
list
.
add
(
selection
);
}
subAcceptList
.
add
(
list
);
}
layerUUIDs
.
remove
(
layerUUIDs
.
size
()
-
1
);
}
}
if
(
subAcceptList
.
size
()
>
0
)
{
acceptList
.
clear
();
for
(
List
<
Integer
>
list
:
subAcceptList
)
{
acceptList
.
addAll
(
list
);
}
}
for
(
int
selection
=
SELECTION_LOWER_BOUND
;
selection
<
SELECTION_UPPER_BOUND
;
selection
++)
{
if
(
acceptList
.
contains
(
selection
))
{
addPreference
(
selection
);
for
(
int
i
=
0
;
i
<
2
;
i
++)
{
if
(
PrivacyPolicyContract
.
ACCEPT
.
equals
(
mPolicyStorage
.
get
(
i
+
1
)))
{
addPreference
(
i
+
1
);
}
else
{
removePreference
(
selection
);
removePreference
(
i
+
1
);
}
}
continueNegotiating
();
...
...
@@ -500,7 +466,7 @@ public class DeviceOperatorActivity extends AppCompatActivity {
int
connectionState
=
mBluetoothManager
.
getConnectionState
(
device
,
BluetoothProfile
.
GATT
);
Log
.
i
(
TAG
,
"Device connection status is "
+
connectionState
+
"."
);
if
(
device
!=
null
&&
connectionState
==
BluetoothProfile
.
STATE_DISCONNECTED
)
{
if
(
device
!=
null
)
{
mBluetoothGatt
=
device
.
connectGatt
(
this
,
false
,
mBluetoothGattCallback
);
return
mBluetoothGatt
!=
null
;
}
else
{
...
...
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/DialogDeviceInfoActivity.java
View file @
5d116ce2
package
org.prlab.idic.privacypolicy
;
import
android.app.Activity
;
import
android.os.Bundle
;
import
android.support.v7.app.AppCompatActivity
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.MenuItem
;
import
android.view.View
;
import
org.prlab.idic.privacypolicy.adapter.IconItemRecyclerViewAdapter
;
import
org.prlab.idic.privacypolicy.adapter.InfoItemRecyclerViewAdapter
;
import
org.prlab.idic.privacypolicy.pojo.report.InfoItem
;
import
org.prlab.idic.privacypolicy.pojo.report.device.Device
;
...
...
@@ -14,7 +17,7 @@ import java.util.List;
/**
* Created by IDIC on 2017/2/22.
*/
public
class
DialogDeviceInfoActivity
extends
Activity
{
public
class
DialogDeviceInfoActivity
extends
A
ppCompatA
ctivity
{
private
Device
mDevice
;
private
List
<
InfoItem
>
items
=
new
LinkedList
<>();
...
...
@@ -67,7 +70,10 @@ public class DialogDeviceInfoActivity extends Activity {
private
void
initView
()
{
RecyclerView
mInfoRecyclerView
=
(
RecyclerView
)
findViewById
(
R
.
id
.
layout_device_info
);
RecyclerView
.
Adapter
mInfoRecyclerViewAdapter
=
new
InfoItemRecyclerViewAdapter
(
items
,
false
);
RecyclerView
.
Adapter
mInfoRecyclerViewAdapter
=
new
InfoItemRecyclerViewAdapter
(
items
,
R
.
layout
.
recycler_view_item_horizontally
,
android
.
os
.
Build
.
VERSION
.
SDK_INT
>=
android
.
os
.
Build
.
VERSION_CODES
.
M
?
getColor
(
R
.
color
.
colorAnother
)
:
getResources
().
getColor
(
R
.
color
.
colorAnother
));
mInfoRecyclerView
.
setAdapter
(
mInfoRecyclerViewAdapter
);
// RecyclerView mIconRecyclerView = (RecyclerView) findViewById(R.id.layout_device_icon);
...
...
@@ -79,8 +85,4 @@ public class DialogDeviceInfoActivity extends Activity {
// }
}
public
void
onBackButtonClick
(
View
view
)
{
finish
();
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/DialogPolicyDetailActivity.java
deleted
100644 → 0
View file @
9a0ab3b5
package
org.prlab.idic.privacypolicy
;
import
android.app.Activity
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.View
;
import
android.widget.TextView
;
import
org.prlab.idic.privacypolicy.adapter.InfoItemRecyclerViewAdapter
;
import
org.prlab.idic.privacypolicy.adapter.StatementRecyclerViewAdapter
;
import
org.prlab.idic.privacypolicy.pojo.report.InfoItem
;
import
org.prlab.idic.privacypolicy.pojo.report.PrivacyPolicy
;
import
org.prlab.idic.privacypolicy.tool.BaseUtils
;
import
java.util.LinkedList
;
import
java.util.List
;
/**
* Created by IDIC on 2017/2/17.
*/
public
class
DialogPolicyDetailActivity
extends
Activity
{
private
PrivacyPolicy
mPrivacyPolicy
;
private
RecyclerView
mCollectorRecyclerView
;
private
TextView
mAccessTextView
;
private
RecyclerView
mDisputeRecyclerView
;
private
RecyclerView
mStatementsRecyclerView
;
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_dialog_policy
);
mPrivacyPolicy
=
getIntent
().
getParcelableExtra
(
getString
(
R
.
string
.
intent_policy_info_key
));
setTitle
(
getString
(
R
.
string
.
message_policy_title
)
+
mPrivacyPolicy
.
getId
());
initView
();
}
private
void
initView
()
{
initCollector
();
initAccess
();
initDispute
();
initStatements
();
}
private
void
initCollector
()
{
mCollectorRecyclerView
=
(
RecyclerView
)
findViewById
(
R
.
id
.
recycler_view_statement_collector
);
List
<
InfoItem
>
collector
=
new
LinkedList
<>();
collector
.
add
(
new
InfoItem
()
.
setKey
(
getString
(
R
.
string
.
policy_statement_collector_name
))
.
setValue
(
mPrivacyPolicy
.
getCollector
().
getName
()));
collector
.
add
(
new
InfoItem
()
.
setKey
(
getString
(
R
.
string
.
policy_statement_collector_email
))
.
setValue
(
mPrivacyPolicy
.
getCollector
().
getEmail
()));
collector
.
add
(
new
InfoItem
()
.
setKey
(
getString
(
R
.
string
.
policy_statement_collector_phone
))
.
setValue
(
mPrivacyPolicy
.
getCollector
().
getPhone
()));
mCollectorRecyclerView
.
setAdapter
(
new
InfoItemRecyclerViewAdapter
(
collector
));
}
private
void
initAccess
()
{
mAccessTextView
=
(
TextView
)
findViewById
(
R
.
id
.
recycler_view_statement_access
);
mAccessTextView
.
setText
(
BaseUtils
.
fixTypeName
(
mPrivacyPolicy
.
getAccess
().
name
()));
}
private
void
initDispute
()
{
mDisputeRecyclerView
=
(
RecyclerView
)
findViewById
(
R
.
id
.
recycler_view_statement_dispute
);
List
<
InfoItem
>
dispute
=
new
LinkedList
<>();
dispute
.
add
(
new
InfoItem
()
.
setKey
(
getString
(
R
.
string
.
policy_statement_dispute_resolution_type
))
.
setValue
(
getString
(
R
.
string
.
policy_statement_dispute_related_organization
)));
dispute
.
add
(
new
InfoItem
()
.
setKey
(
BaseUtils
.
fixTypeName
(
mPrivacyPolicy
.
getDispute
().
getType
().
name
()))
.
setValue
(
mPrivacyPolicy
.
getDispute
().
getRelatedOrganization
()));
mDisputeRecyclerView
.
setAdapter
(
new
InfoItemRecyclerViewAdapter
(
dispute
));
}
private
void
initStatements
()
{
mStatementsRecyclerView
=
(
RecyclerView
)
findViewById
(
R
.
id
.
recycler_view_statement_content
);
mStatementsRecyclerView
.
setAdapter
(
new
StatementRecyclerViewAdapter
(
getResources
(),
mPrivacyPolicy
.
getStatements
()));
}
public
void
onAgreeButtonClick
(
View
view
)
{
Intent
intent
=
new
Intent
();
intent
.
putExtra
(
getString
(
R
.
string
.
intent_policy_response_selection_key
),
mPrivacyPolicy
.
getId
());
setResult
(
RESULT_OK
,
intent
);
finish
();
}
public
void
onDenyButtonClick
(
View
view
)
{
finish
();
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/ReportActivity.java
View file @
5d116ce2
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/adapter/IconItemRecyclerViewAdapter.java
View file @
5d116ce2
...
...
@@ -10,6 +10,7 @@ import android.widget.ImageView;
import
org.prlab.idic.privacypolicy.R
;
import
org.prlab.idic.privacypolicy.pojo.report.device.Icon
;
import
java.util.Arrays
;
import
java.util.List
;
/**
...
...
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/adapter/InfoItemRecyclerViewAdapter.java
View file @
5d116ce2
package
org.prlab.idic.privacypolicy.adapter
;
import
android.content.res.Resources
;
import
android.graphics.Color
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.Gravity
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.TextView
;
import
org.prlab.idic.privacypolicy.R
;
import
org.prlab.idic.privacypolicy.pojo.report.InfoItem
;
...
...
@@ -17,27 +20,35 @@ import java.util.List;
public
class
InfoItemRecyclerViewAdapter
extends
RecyclerView
.
Adapter
<
InfoItemRecyclerViewAdapter
.
ViewHolder
>
{
private
List
<
InfoItem
>
items
;
private
boolean
isVertical
;
private
int
layout
;
private
int
separatedColor
;
public
InfoItemRecyclerViewAdapter
(
List
<
InfoItem
>
items
)
{
this
.
isVertical
=
true
;
this
.
items
=
items
;
public
InfoItemRecyclerViewAdapter
(
List
<
InfoItem
>
items
,
int
layout
)
{
this
(
items
,
layout
,
-
1
);
}
public
InfoItemRecyclerViewAdapter
(
List
<
InfoItem
>
items
,
boolean
isVertical
)
{
this
.
isVertical
=
isVertical
;
public
InfoItemRecyclerViewAdapter
(
List
<
InfoItem
>
items
,
int
layout
,
int
separatedColor
)
{
this
.
items
=
items
;
this
.
layout
=
layout
;
this
.
separatedColor
=
separatedColor
;
}
@Override
public
InfoItemRecyclerViewAdapter
.
ViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
parent
.
getContext
()).
inflate
(
R
.
layout
.
recycler_view_item_horizontally
,
parent
,
false
);
View
view
=
LayoutInflater
.
from
(
parent
.
getContext
()).
inflate
(
layout
,
parent
,
false
);
return
new
InfoItemRecyclerViewAdapter
.
ViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
ViewHolder
holder
,
int
position
)
{
holder
.
bind
(
position
);
InfoItem
item
=
items
.
get
(
position
);
holder
.
mKeyTextView
.
setText
(
item
.
getKey
());
holder
.
mValueTextView
.
setText
(
item
.
getValue
());
if
(
separatedColor
!=
-
1
)
{
if
(
position
%
2
==
0
)
{
holder
.
itemView
.
setBackgroundColor
(
separatedColor
);
}
}
}
@Override
...
...
@@ -52,19 +63,10 @@ public class InfoItemRecyclerViewAdapter extends RecyclerView.Adapter<InfoItemRe
ViewHolder
(
View
itemView
)
{
super
(
itemView
);
View
view
=
itemView
.
findViewById
(
R
.
id
.
item_info
);
mKeyTextView
=
(
TextView
)
view
.
findViewById
(
R
.
id
.
text_key
);
mValueTextView
=
(
TextView
)
view
.
findViewById
(
R
.
id
.
text_value
);
mKeyTextView
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
text_key
);
mValueTextView
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
text_value
);
}
void
bind
(
int
listIndex
)
{
InfoItem
item
=
items
.
get
(
listIndex
);
mKeyTextView
.
setText
(
item
.
getKey
());
mValueTextView
.
setText
(
item
.
getValue
());
if
(
isVertical
&&
listIndex
==
0
)
{
// title box
}
}
}
...
...
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/adapter/IntegerButtonRecyclerViewAdapter.java
deleted
100644 → 0
View file @
9a0ab3b5
package
org.prlab.idic.privacypolicy.adapter
;
import
android.content.res.Resources
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.Button
;
import
org.prlab.idic.privacypolicy.R
;
import
java.util.LinkedList
;
import
java.util.List
;
/**
* Created by IDIC on 2017/2/16.
*/
public
class
IntegerButtonRecyclerViewAdapter
extends
RecyclerView
.
Adapter
<
IntegerButtonRecyclerViewAdapter
.
ViewHolder
>
{
private
final
String
PRIVACY_POLICY_TITLE
;
private
ListItemClickListener
listItemClickListener
;
private
List
<
Integer
>
items
;
private
List
<
Integer
>
target
=
new
LinkedList
<>();
public
IntegerButtonRecyclerViewAdapter
(
Resources
resources
,
ListItemClickListener
listItemClickListener
)
{
this
.
PRIVACY_POLICY_TITLE
=
resources
.
getString
(
R
.
string
.
message_policy_title
);
this
.
listItemClickListener
=
listItemClickListener
;
}
public
void
setItems
(
List
<
Integer
>
items
)
{
this
.
items
=
items
;
notifyDataSetChanged
();
}
public
void
addTarget
(
Integer
target
)
{
this
.
target
.
add
(
target
);
notifyDataSetChanged
();
}
public
void
resetTarget
()
{
this
.
target
.
clear
();
notifyDataSetChanged
();
}
public
interface
ListItemClickListener
{
void
onListItemClick
(
int
clickedItemIndex
);
}
@Override
public
ViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
parent
.
getContext
()).
inflate
(
R
.
layout
.
recycler_view_item
,
parent
,
false
);
return
new
IntegerButtonRecyclerViewAdapter
.
ViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
ViewHolder
holder
,
int
position
)
{
holder
.
bind
(
position
);
}
@Override
public
int
getItemCount
()
{
return
null
!=
items
?
items
.
size
()
:
0
;
}
class
ViewHolder
extends
RecyclerView
.
ViewHolder
{
private
Button
button
;
ViewHolder
(
View
itemView
)
{
super
(
itemView
);
button
=
(
Button
)
itemView
.
findViewById
(
R
.
id
.
button_item
);
button
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
IntegerButtonRecyclerViewAdapter
.
this
.
listItemClickListener
.
onListItemClick
(
getAdapterPosition
());
}
});
}
void
bind
(
int
listIndex
)
{
int
item
=
items
.
get
(
listIndex
);
String
message
=
IntegerButtonRecyclerViewAdapter
.
this
.
PRIVACY_POLICY_TITLE
+
String
.
valueOf
(
item
);
button
.
setText
(
message
);
button
.
setEnabled
(!
target
.
contains
(
item
));
}
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/adapter/PolicyRecyclerViewAdapter.java
0 → 100644
View file @
5d116ce2
package
org.prlab.idic.privacypolicy.adapter
;
import
android.content.res.Resources
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.CheckBox
;
import
android.widget.CompoundButton
;
import
android.widget.ImageView
;
import
android.widget.Switch
;
import
android.widget.TextView
;
import
org.prlab.idic.privacypolicy.R
;
import
org.prlab.idic.privacypolicy.pojo.report.InfoItem
;
import
org.prlab.idic.privacypolicy.pojo.report.PrivacyPolicy
;
import
org.prlab.idic.privacypolicy.pojo.report.p3p.Datum
;
import
org.prlab.idic.privacypolicy.pojo.report.p3p.Purpose
;
import
org.prlab.idic.privacypolicy.pojo.report.p3p.Recipient
;
import
org.prlab.idic.privacypolicy.pojo.report.p3p.Remedy
;
import
org.prlab.idic.privacypolicy.pojo.report.p3p.Statement
;
import
java.util.LinkedList
;
import
java.util.List
;
public
class
PolicyRecyclerViewAdapter
extends
RecyclerView
.
Adapter
<
PolicyRecyclerViewAdapter
.
ViewHolder
>
{
private
static
final
String
POLICY_PREFIX
=
"Policy "
;
private
List
<
PrivacyPolicy
>
policies
;
private
List
<
Integer
>
selections
;
private
ItemCheckedChangedListener
itemCheckedChangedListener
;
private
int
separatedColor
;
private
final
String
SEPARATOR
;
//BASE
private
final
String
COLLECTOR_NAME
;
private
final
String
COLLECTOR_PHONE
;
private
final
String
COLLECTOR_EMAIL
;
private
final
String
DISPUTE_RELATED_ORGANIZATION
;
private
final
String
DISPUTE_RESOLUTION_TYPE
;
private
final
String
ACCESS
;
//Statement
private
final
String
CONSEQUENCE
;
private
final
String
PURPOSE_TYPE
;
private
final
String
PURPOSE_DESCRIPTION
;
private
final
String
DATUM_TYPE
;
private
final
String
DATUM_DESCRIPTION
;
private
final
String
RECIPIENT_TYPE
;
private
final
String
RECIPIENT_DESCRIPTION
;
private
final
String
REMEDIES
;
private
final
String
RETENTION
;
public
PolicyRecyclerViewAdapter
(
Resources
resources
,
List
<
PrivacyPolicy
>
policies
,
List
<
Integer
>
selections
,
ItemCheckedChangedListener
itemCheckedChangedListener
){
this
(
resources
,
policies
,
selections
,
itemCheckedChangedListener
,
-
1
);
}
public
PolicyRecyclerViewAdapter
(
Resources
resources
,
List
<
PrivacyPolicy
>
policies
,
List
<
Integer
>
selections
,
ItemCheckedChangedListener
itemCheckedChangedListener
,
int
separatedColor
)
{
SEPARATOR
=
resources
.
getString
(
R
.
string
.
policy_separator
);
//BASE
String
COLLECTOR
=
resources
.
getString
(
R
.
string
.
policy_collector_title
);
COLLECTOR_NAME
=
COLLECTOR
+
SEPARATOR
+
resources
.
getString
(
R
.
string
.
policy_collector_name
);
COLLECTOR_PHONE
=
COLLECTOR
+
SEPARATOR
+
resources
.
getString
(
R
.
string
.
policy_collector_phone
);
COLLECTOR_EMAIL
=
COLLECTOR
+
SEPARATOR
+
resources
.
getString
(
R
.
string
.
policy_collector_email
);
String
DISPUTES
=
resources
.
getString
(
R
.
string
.
policy_dispute_title
);
DISPUTE_RESOLUTION_TYPE
=
DISPUTES
+
SEPARATOR
+
resources
.
getString
(
R
.
string
.
policy_dispute_resolution_type
);
DISPUTE_RELATED_ORGANIZATION
=
DISPUTES
+
SEPARATOR
+
resources
.
getString
(
R
.
string
.
policy_dispute_related_organization
);
ACCESS
=
resources
.
getString
(
R
.
string
.
policy_access_title
);
//Statement
CONSEQUENCE
=
resources
.
getString
(
R
.
string
.
policy_statement_consequence_title
);
String
PURPOSES
=
resources
.
getString
(
R
.
string
.
policy_statement_purpose_title
);
PURPOSE_TYPE
=
PURPOSES
+
SEPARATOR
+
resources
.
getString
(
R
.
string
.
policy_statement_purpose_type
);
PURPOSE_DESCRIPTION
=
PURPOSES
+
SEPARATOR
+
resources
.
getString
(
R
.
string
.
policy_statement_purpose_description
);
String
DATA
=
resources
.
getString
(
R
.
string
.
policy_statement_data_title
);
DATUM_TYPE
=
DATA
+
SEPARATOR
+
resources
.
getString
(
R
.
string
.
policy_statement_data_type
);
DATUM_DESCRIPTION
=
DATA
+
SEPARATOR
+
resources
.
getString
(
R
.
string
.
policy_statement_data_description
);
String
RECIPIENTS
=
resources
.
getString
(
R
.
string
.
policy_statement_recipient_title
);
RECIPIENT_TYPE
=
RECIPIENTS
+
SEPARATOR
+
resources
.
getString
(
R
.
string
.
policy_statement_recipient_type
);
RECIPIENT_DESCRIPTION
=
RECIPIENTS
+
SEPARATOR
+
resources
.
getString
(
R
.
string
.
policy_statement_recipient_description
);
REMEDIES
=
resources
.
getString
(
R
.
string
.
policy_statement_remedies
);
RETENTION
=
resources
.
getString
(
R
.
string
.
policy_statement_retention
);
this
.
policies
=
policies
;
this
.
selections
=
selections
;
this
.
itemCheckedChangedListener
=
itemCheckedChangedListener
;
this
.
separatedColor
=
separatedColor
;
}
@Override
public
ViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
return
new
ViewHolder
(
LayoutInflater
.
from
(
parent
.
getContext
())
.
inflate
(
R
.
layout
.
recycler_view_policy
,
parent
,
false
));
}
@Override
public
void
onBindViewHolder
(
ViewHolder
holder
,
int
position
)
{
PrivacyPolicy
policy
=
policies
.
get
(
position
);
String
title
=
POLICY_PREFIX
+
policy
.
getId
();
holder
.
mPolicyTitleTextView
.
setText
(
title
);
holder
.
mPolicyDescriptionTextView
.
setText
(
policy
.
getDescription
());
holder
.
mPolicyCheckBox
.
setChecked
(
selections
.
contains
(
policy
.
getId
()));
List
<
InfoItem
>
items
=
new
LinkedList
<>();
addItem
(
items
,
COLLECTOR_NAME
,
policy
.
getCollector
().
getName
());
addItem
(
items
,
COLLECTOR_EMAIL
,
policy
.
getCollector
().
getEmail
());
addItem
(
items
,
COLLECTOR_PHONE
,
policy
.
getCollector
().
getPhone
());
addItem
(
items
,
DISPUTE_RESOLUTION_TYPE
,
policy
.
getDispute
().
getType
().
name
());
addItem
(
items
,
DISPUTE_RELATED_ORGANIZATION
,
policy
.
getDispute
().
getRelatedOrganization
());
addItem
(
items
,
ACCESS
,
policy
.
getAccess
().
name
());
StringBuilder
remedies
=
new
StringBuilder
();
for
(
Remedy
remedy
:
policy
.
getRemedies
())
{
remedies
.
append
(
remedy
.
getType
()).
append
(
SEPARATOR
);
}
if
(
remedies
.
length
()
>
0
)
addItem
(
items
,
REMEDIES
,
remedies
.
toString
());
for
(
Statement
statement
:
policy
.
getStatements
())
{
// addItem(items, CONSEQUENCE, statement.getConsequence());
for
(
Purpose
purpose
:
statement
.
getPurposes
())
{
addItem
(
items
,
PURPOSE_TYPE
,
purpose
.
getType
().
name
());
addItem
(
items
,
PURPOSE_DESCRIPTION
,
purpose
.
getDescription
());
}
for
(
Datum
datum
:
statement
.
getData
())
{
addItem
(
items
,
DATUM_TYPE
,
datum
.
getType
().
name
());
addItem
(
items
,
DATUM_DESCRIPTION
,
datum
.
getDescription
());
}
for
(
Recipient
recipient
:
statement
.
getRecipients
())
{
addItem
(
items
,
RECIPIENT_TYPE
,
recipient
.
getType
().
name
());
addItem
(
items
,
RECIPIENT_DESCRIPTION
,
recipient
.
getDescription
());
}
addItem
(
items
,
RETENTION
,
statement
.
getRetention
().
name
());
}
holder
.
mPolicyContentRecyclerView
.
setAdapter
(
new
InfoItemRecyclerViewAdapter
(
items
,
R
.
layout
.
recycler_view_policy_content
,
separatedColor
));
}
private
void
addItem
(
List
<
InfoItem
>
items
,
String
key
,
String
value
)
{
items
.
add
(
new
InfoItem
()
.
setKey
(
key
)
.
setValue
(
value
));
}
@Override
public
int
getItemCount
()
{
return
policies
!=
null
?
policies
.
size
()
:
0
;
}
class
ViewHolder
extends
RecyclerView
.
ViewHolder
{
private
TextView
mPolicyTitleTextView
;
private
TextView
mPolicyDescriptionTextView
;
private
Switch
mPolicyCheckBox
;
private
ImageView
mPolicyScaledImageView
;
private
RecyclerView
mPolicyContentRecyclerView
;
ViewHolder
(
View
itemView
)
{
super
(
itemView
);
mPolicyTitleTextView
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
text_policy_title
);
mPolicyDescriptionTextView
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
text_policy_description
);
mPolicyCheckBox
=
(
Switch
)
itemView
.
findViewById
(
R
.
id
.
switch_policy_accept
);
mPolicyScaledImageView
=
(
ImageView
)
itemView
.
findViewById
(
R
.
id
.
image_view_policy_scaled
);
mPolicyContentRecyclerView
=
(
RecyclerView
)
itemView
.
findViewById
(
R
.
id
.
recycler_view_policy_content
);
itemView
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
mPolicyContentRecyclerView
.
getVisibility
()
==
View
.
VISIBLE
)
{
mPolicyContentRecyclerView
.
setVisibility
(
View
.
GONE
);
mPolicyScaledImageView
.
setImageResource
(
R
.
drawable
.
ic_arrow_drop_up_black_24dp
);
}
else
{
mPolicyContentRecyclerView
.
setVisibility
(
View
.
VISIBLE
);
mPolicyScaledImageView
.
setImageResource
(
R
.
drawable
.
ic_arrow_drop_down_black_24dp
);
}
}
});
mPolicyCheckBox
.
setOnCheckedChangeListener
(
new
CompoundButton
.
OnCheckedChangeListener
()
{
@Override
public
void
onCheckedChanged
(
CompoundButton
buttonView
,
boolean
isChecked
)
{
itemCheckedChangedListener
.
onItemCheckedChanged
(
policies
.
get
(
getAdapterPosition
()),
isChecked
);
}
});
}
}
public
interface
ItemCheckedChangedListener
{
void
onItemCheckedChanged
(
PrivacyPolicy
policy
,
boolean
isChecked
);
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/adapter/ScanResultRecyclerViewAdapter.java
View file @
5d116ce2
...
...
@@ -16,7 +16,8 @@ import java.util.List;
/**
* Created by IDIC on 2017/1/20.
*/
public
class
ScanResultRecyclerViewAdapter
extends
RecyclerView
.
Adapter
<
ScanResultRecyclerViewAdapter
.
ViewHolder
>
{
public
class
ScanResultRecyclerViewAdapter
extends
RecyclerView
.
Adapter
<
ScanResultRecyclerViewAdapter
.
ViewHolder
>
{
private
static
final
String
TAG
=
ScanResultRecyclerViewAdapter
.
class
.
getSimpleName
();
...
...
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/adapter/StatementRecyclerViewAdapter.java
deleted
100644 → 0
View file @
9a0ab3b5
package
org.prlab.idic.privacypolicy.adapter
;
import
android.content.res.Resources
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.TextView
;
import
org.prlab.idic.privacypolicy.R
;
import
org.prlab.idic.privacypolicy.pojo.report.InfoItem
;
import
org.prlab.idic.privacypolicy.pojo.report.p3p.*
;
import
org.prlab.idic.privacypolicy.tool.BaseUtils
;
import
java.util.LinkedList
;
import
java.util.List
;
/**
* Created by IDIC on 2017/2/23.
*/
public
class
StatementRecyclerViewAdapter
extends
RecyclerView
.
Adapter
<
StatementRecyclerViewAdapter
.
ViewHolder
>
{
private
final
String
CONSEQUENCE_TITLE
;
private
final
String
PURPOSE_TYPE_TITLE
;
private
final
String
PURPOSE_DESCRIPTION_TITLE
;
private
final
String
DATUM_TYPE_TITLE
;
private
final
String
DATUM_DESCRIPTION_TITLE
;
private
final
String
REMEDIES_TITLE
;
private
final
String
RECIPIENT_TYPE_TITLE
;
private
final
String
RECIPIENT_DESCRIPTION_TITLE
;
private
final
String
RETENTION_TITLE
;
private
List
<
Statement
>
statements
;
public
StatementRecyclerViewAdapter
(
Resources
resources
,
List
<
Statement
>
statements
)
{
CONSEQUENCE_TITLE
=
resources
.
getString
(
R
.
string
.
policy_statement_consequence_title
);
PURPOSE_TYPE_TITLE
=
resources
.
getString
(
R
.
string
.
policy_statement_purpose_type
);
PURPOSE_DESCRIPTION_TITLE
=
resources
.
getString
(
R
.
string
.
policy_statement_purpose_description
);
DATUM_TYPE_TITLE
=
resources
.
getString
(
R
.
string
.
policy_statement_data_type
);
DATUM_DESCRIPTION_TITLE
=
resources
.
getString
(
R
.
string
.
policy_statement_data_description
);
REMEDIES_TITLE
=
resources
.
getString
(
R
.
string
.
policy_statement_remedies
);
RECIPIENT_TYPE_TITLE
=
resources
.
getString
(
R
.
string
.
policy_statement_recipient_type
);
RECIPIENT_DESCRIPTION_TITLE
=
resources
.
getString
(
R
.
string
.
policy_statement_recipient_description
);
RETENTION_TITLE
=
resources
.
getString
(
R
.
string
.
policy_statement_retention
);
this
.
statements
=
statements
;
}
@Override
public
StatementRecyclerViewAdapter
.
ViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
parent
.
getContext
()).
inflate
(
R
.
layout
.
recycler_view_statement
,
parent
,
false
);
return
new
StatementRecyclerViewAdapter
.
ViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
ViewHolder
holder
,
int
position
)
{
holder
.
bind
(
position
);
}
@Override
public
int
getItemCount
()
{
return
null
==
statements
?
0
:
statements
.
size
();
}
class
ViewHolder
extends
RecyclerView
.
ViewHolder
{
private
TextView
mConsequenceTextView
;
private
RecyclerView
mPurposesRecyclerView
;
private
RecyclerView
mDataRecyclerView
;
private
TextView
mRemediesTextView
;
private
RecyclerView
mRecipientsRecyclerView
;
private
TextView
mRetentionTextView
;
ViewHolder
(
View
itemView
)
{
super
(
itemView
);
mConsequenceTextView
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
recycler_view_statement_related_uuid
);
mPurposesRecyclerView
=
(
RecyclerView
)
itemView
.
findViewById
(
R
.
id
.
recycler_view_statement_purposes
);
mDataRecyclerView
=
(
RecyclerView
)
itemView
.
findViewById
(
R
.
id
.
recycler_view_statement_data
);
mRemediesTextView
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
text_statement_remedies
);
mRecipientsRecyclerView
=
(
RecyclerView
)
itemView
.
findViewById
(
R
.
id
.
recycler_view_statement_recipients
);
mRetentionTextView
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
text_statement_retention
);
}
private
void
bindRelatedUUID
(
String
consequence
)
{
mConsequenceTextView
.
setText
(
consequence
);
}
private
void
bindPurposes
(
List
<
Purpose
>
purposes
)
{
List
<
InfoItem
>
infoItems
=
new
LinkedList
<>();
infoItems
.
add
(
new
InfoItem
()
.
setKey
(
PURPOSE_TYPE_TITLE
)
.
setValue
(
PURPOSE_DESCRIPTION_TITLE
));
for
(
Purpose
purpose
:
purposes
)
{
infoItems
.
add
(
new
InfoItem
()
.
setKey
(
BaseUtils
.
fixTypeName
(
purpose
.
getType
().
name
()))
.
setValue
(
purpose
.
getDescription
()));
}
mPurposesRecyclerView
.
setAdapter
(
new
InfoItemRecyclerViewAdapter
(
infoItems
));
}
private
void
bindData
(
List
<
Datum
>
data
)
{
List
<
InfoItem
>
infoItems
=
new
LinkedList
<>();
infoItems
.
add
(
new
InfoItem
()
.
setKey
(
DATUM_TYPE_TITLE
)
.
setValue
(
DATUM_DESCRIPTION_TITLE
));
for
(
Datum
datum
:
data
)
{
infoItems
.
add
(
new
InfoItem
()
.
setKey
(
BaseUtils
.
fixTypeName
(
datum
.
getType
().
name
()))
.
setValue
(
datum
.
getDescription
()));
}
mDataRecyclerView
.
setAdapter
(
new
InfoItemRecyclerViewAdapter
(
infoItems
));
}
private
void
bindRemedies
(
List
<
Remedy
>
remedies
)
{
StringBuilder
builder
=
new
StringBuilder
();
for
(
Remedy
remedy
:
remedies
)
{
builder
.
append
(
BaseUtils
.
fixTypeName
(
remedy
.
name
())).
append
(
", "
);
}
builder
.
delete
(
builder
.
length
()
-
2
,
builder
.
length
());
mRemediesTextView
.
setText
(
builder
.
toString
());
}
private
void
bindRecipients
(
List
<
Recipient
>
recipients
)
{
List
<
InfoItem
>
infoItems
=
new
LinkedList
<>();
infoItems
.
add
(
new
InfoItem
()
.
setKey
(
RECIPIENT_TYPE_TITLE
)
.
setValue
(
RECIPIENT_DESCRIPTION_TITLE
));
for
(
Recipient
recipient
:
recipients
)
{
infoItems
.
add
(
new
InfoItem
()
.
setKey
(
BaseUtils
.
fixTypeName
(
recipient
.
getType
().
name
()))
.
setValue
(
recipient
.
getDescription
()));
}
mRecipientsRecyclerView
.
setAdapter
(
new
InfoItemRecyclerViewAdapter
(
infoItems
));
}
private
void
bindRetention
(
Retention
retention
)
{
mRetentionTextView
.
setText
(
BaseUtils
.
fixTypeName
(
retention
.
name
()));
}
void
bind
(
int
listIndex
)
{
Statement
statement
=
statements
.
get
(
listIndex
);
bindRelatedUUID
(
statement
.
getConsequence
());
bindPurposes
(
statement
.
getPurposes
());
bindData
(
statement
.
getData
());
bindRemedies
(
statement
.
getRemedies
());
bindRecipients
(
statement
.
getRecipients
());
bindRetention
(
statement
.
getRetention
());
}
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/adapter/StringButtonRecyclerViewAdapter.java
deleted
100644 → 0
View file @
9a0ab3b5
package
org.prlab.idic.privacypolicy.adapter
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.Button
;
import
org.prlab.idic.privacypolicy.R
;
import
java.util.List
;
/**
* Created by IDIC on 2017/2/16.
*/
public
class
StringButtonRecyclerViewAdapter
extends
RecyclerView
.
Adapter
<
StringButtonRecyclerViewAdapter
.
ViewHolder
>
{
private
ListItemClickListener
listItemClickListener
;
private
List
<
String
>
items
;
private
String
target
;
public
StringButtonRecyclerViewAdapter
(
ListItemClickListener
listItemClickListener
)
{
this
.
listItemClickListener
=
listItemClickListener
;
}
public
void
setItems
(
List
<
String
>
items
)
{
this
.
items
=
items
;
notifyDataSetChanged
();
}
public
void
setTarget
(
String
target
)
{
this
.
target
=
target
;
notifyItemChanged
(
items
.
indexOf
(
target
));
}
public
interface
ListItemClickListener
{
void
onListItemClick
(
int
clickedItemIndex
);
}
@Override
public
ViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
parent
.
getContext
()).
inflate
(
R
.
layout
.
recycler_view_item
,
parent
,
false
);
return
new
StringButtonRecyclerViewAdapter
.
ViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
ViewHolder
holder
,
int
position
)
{
holder
.
bind
(
position
);
}
@Override
public
int
getItemCount
()
{
return
null
!=
items
?
items
.
size
()
:
0
;
}
class
ViewHolder
extends
RecyclerView
.
ViewHolder
{
private
Button
button
;
ViewHolder
(
View
itemView
)
{
super
(
itemView
);
button
=
(
Button
)
itemView
.
findViewById
(
R
.
id
.
button_item
);
button
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
StringButtonRecyclerViewAdapter
.
this
.
listItemClickListener
.
onListItemClick
(
getAdapterPosition
());
}
});
}
void
bind
(
int
listIndex
)
{
String
item
=
items
.
get
(
listIndex
);
button
.
setText
(
item
);
button
.
setEnabled
(!
item
.
equals
(
target
));
}
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/Layer.java
deleted
100644 → 0
View file @
9a0ab3b5
package
org.prlab.idic.privacypolicy.pojo.report
;
import
java.util.Collections
;
import
java.util.LinkedList
;
import
java.util.List
;
/**
* Created by IDIC on 2017/2/22.
*/
public
class
Layer
{
private
String
UUID
;
private
List
<
Integer
>
policies
=
new
LinkedList
<>();
private
List
<
Layer
>
subLayers
=
new
LinkedList
<>();
public
String
getUUID
()
{
return
UUID
;
}
public
Layer
setUUID
(
String
UUID
)
{
this
.
UUID
=
UUID
;
return
this
;
}
public
List
<
Integer
>
getPolicies
()
{
return
policies
;
}
public
Layer
setPolicies
(
List
<
Integer
>
policies
)
{
this
.
policies
=
policies
;
return
this
;
}
public
List
<
Layer
>
getSubLayers
()
{
return
subLayers
;
}
public
Layer
setSubLayers
(
List
<
Layer
>
subLayers
)
{
this
.
subLayers
=
subLayers
;
return
this
;
}
public
Layer
addPrivacyPolicy
(
Integer
policy
)
{
if
(
null
!=
policies
)
this
.
policies
.
add
(
policy
);
return
this
;
}
public
Layer
addSubLayer
(
Layer
layer
)
{
if
(
null
!=
subLayers
)
this
.
subLayers
.
add
(
layer
);
return
this
;
}
public
int
getLayerLevel
()
{
if
(
null
==
subLayers
||
subLayers
.
isEmpty
())
return
0
;
List
<
Integer
>
counter
=
new
LinkedList
<>();
for
(
Layer
layer
:
subLayers
)
{
counter
.
add
(
1
+
layer
.
getLayerLevel
());
}
return
Collections
.
max
(
counter
);
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/PrivacyPolicy.java
View file @
5d116ce2
...
...
@@ -18,6 +18,7 @@ public class PrivacyPolicy implements Parcelable {
private
Collector
collector
;
private
Dispute
dispute
;
private
Access
access
;
private
List
<
Remedy
>
remedies
=
new
LinkedList
<>();
private
List
<
Statement
>
statements
=
new
LinkedList
<>();
public
PrivacyPolicy
()
{
...
...
@@ -29,6 +30,7 @@ public class PrivacyPolicy implements Parcelable {
collector
=
in
.
readParcelable
(
Collector
.
class
.
getClassLoader
());
dispute
=
in
.
readParcelable
(
Dispute
.
class
.
getClassLoader
());
access
=
in
.
readParcelable
(
Access
.
class
.
getClassLoader
());
remedies
=
in
.
createTypedArrayList
(
Remedy
.
CREATOR
);
statements
=
in
.
createTypedArrayList
(
Statement
.
CREATOR
);
}
...
...
@@ -56,6 +58,7 @@ public class PrivacyPolicy implements Parcelable {
dest
.
writeParcelable
(
collector
,
flags
);
dest
.
writeParcelable
(
dispute
,
flags
);
dest
.
writeParcelable
(
access
,
flags
);
dest
.
writeTypedList
(
remedies
);
dest
.
writeTypedList
(
statements
);
}
...
...
@@ -104,6 +107,20 @@ public class PrivacyPolicy implements Parcelable {
return
this
;
}
public
List
<
Remedy
>
getRemedies
()
{
return
remedies
;
}
public
PrivacyPolicy
setRemedies
(
List
<
Remedy
>
remedies
)
{
this
.
remedies
=
remedies
;
return
this
;
}
public
PrivacyPolicy
addRemedy
(
Remedy
remedy
)
{
if
(
null
!=
this
.
remedies
)
this
.
remedies
.
add
(
remedy
);
return
this
;
}
public
List
<
Statement
>
getStatements
()
{
return
statements
;
}
...
...
@@ -117,4 +134,5 @@ public class PrivacyPolicy implements Parcelable {
if
(
null
!=
this
.
statements
)
this
.
statements
.
add
(
statement
);
return
this
;
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/PrivacyPolicyReport.java
View file @
5d116ce2
...
...
@@ -4,6 +4,8 @@ package org.prlab.idic.privacypolicy.pojo.report;
import
org.prlab.idic.privacypolicy.pojo.report.device.Device
;
import
java.util.HashMap
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -11,11 +13,20 @@ import java.util.Map;
*/
public
class
PrivacyPolicyReport
{
private
String
id
;
private
String
version
;
private
String
description
;
private
Device
device
;
private
Map
<
Integer
,
PrivacyPolicy
>
policies
=
new
HashMap
<>();
private
Layer
root
;
private
List
<
PrivacyPolicy
>
policies
=
new
LinkedList
<>();
public
String
getId
()
{
return
id
;
}
public
PrivacyPolicyReport
setId
(
String
id
)
{
this
.
id
=
id
;
return
this
;
}
public
String
getVersion
()
{
return
version
;
...
...
@@ -43,27 +54,18 @@ public class PrivacyPolicyReport {
this
.
device
=
device
;
return
this
;
}
public
Map
<
Integer
,
PrivacyPolicy
>
getPolicies
()
{
public
List
<
PrivacyPolicy
>
getPolicies
()
{
return
policies
;
}
public
PrivacyPolicyReport
setPolicies
(
Map
<
Integer
,
PrivacyPolicy
>
policies
)
{
public
PrivacyPolicyReport
setPolicies
(
List
<
PrivacyPolicy
>
policies
)
{
this
.
policies
=
policies
;
return
this
;
}
public
PrivacyPolicyReport
addPrivacyPolicy
(
PrivacyPolicy
policy
)
{
if
(
null
!=
policies
)
this
.
policies
.
put
(
policy
.
getId
(),
policy
);
if
(
null
!=
policies
)
this
.
policies
.
add
(
policy
);
return
this
;
}
public
Layer
getRoot
()
{
return
root
;
}
public
PrivacyPolicyReport
setRoot
(
Layer
root
)
{
this
.
root
=
root
;
return
this
;
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/device/Manufacturer.java
View file @
5d116ce2
...
...
@@ -8,6 +8,7 @@ import android.os.Parcelable;
*/
public
class
Manufacturer
implements
Parcelable
{
private
long
id
;
private
String
name
;
private
String
url
;
private
String
serialNumber
;
...
...
@@ -16,6 +17,7 @@ public class Manufacturer implements Parcelable {
}
private
Manufacturer
(
Parcel
in
)
{
id
=
in
.
readLong
();
name
=
in
.
readString
();
url
=
in
.
readString
();
serialNumber
=
in
.
readString
();
...
...
@@ -28,6 +30,7 @@ public class Manufacturer implements Parcelable {
@Override
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
dest
.
writeLong
(
id
);
dest
.
writeString
(
name
);
dest
.
writeString
(
url
);
dest
.
writeString
(
serialNumber
);
...
...
@@ -45,6 +48,15 @@ public class Manufacturer implements Parcelable {
}
};
public
long
getId
()
{
return
id
;
}
public
Manufacturer
setId
(
long
id
)
{
this
.
id
=
id
;
return
this
;
}
public
String
getName
()
{
return
name
;
}
...
...
@@ -79,16 +91,20 @@ public class Manufacturer implements Parcelable {
Manufacturer
that
=
(
Manufacturer
)
o
;
if
(
id
!=
that
.
id
)
return
false
;
if
(
name
!=
null
?
!
name
.
equals
(
that
.
name
)
:
that
.
name
!=
null
)
return
false
;
if
(
url
!=
null
?
!
url
.
equals
(
that
.
url
)
:
that
.
url
!=
null
)
return
false
;
return
serialNumber
!=
null
?
serialNumber
.
equals
(
that
.
serialNumber
)
:
that
.
serialNumber
==
null
;
}
@Override
public
int
hashCode
()
{
int
result
=
name
!=
null
?
name
.
hashCode
()
:
0
;
int
result
=
(
int
)
(
id
^
(
id
>>>
32
));
result
=
31
*
result
+
(
name
!=
null
?
name
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
url
!=
null
?
url
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
serialNumber
!=
null
?
serialNumber
.
hashCode
()
:
0
);
return
result
;
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/device/Model.java
View file @
5d116ce2
...
...
@@ -8,6 +8,7 @@ import android.os.Parcelable;
*/
public
class
Model
implements
Parcelable
{
private
long
id
;
private
String
name
;
private
String
url
;
private
String
description
;
...
...
@@ -16,6 +17,7 @@ public class Model implements Parcelable{
}
private
Model
(
Parcel
in
)
{
id
=
in
.
readLong
();
name
=
in
.
readString
();
url
=
in
.
readString
();
description
=
in
.
readString
();
...
...
@@ -28,6 +30,7 @@ public class Model implements Parcelable{
@Override
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
dest
.
writeLong
(
id
);
dest
.
writeString
(
name
);
dest
.
writeString
(
url
);
dest
.
writeString
(
description
);
...
...
@@ -45,6 +48,15 @@ public class Model implements Parcelable{
}
};
public
long
getId
()
{
return
id
;
}
public
Model
setId
(
long
id
)
{
this
.
id
=
id
;
return
this
;
}
public
String
getName
()
{
return
name
;
}
...
...
@@ -79,16 +91,20 @@ public class Model implements Parcelable{
Model
model
=
(
Model
)
o
;
if
(
id
!=
model
.
id
)
return
false
;
if
(
name
!=
null
?
!
name
.
equals
(
model
.
name
)
:
model
.
name
!=
null
)
return
false
;
if
(
url
!=
null
?
!
url
.
equals
(
model
.
url
)
:
model
.
url
!=
null
)
return
false
;
return
description
!=
null
?
description
.
equals
(
model
.
description
)
:
model
.
description
==
null
;
}
@Override
public
int
hashCode
()
{
int
result
=
name
!=
null
?
name
.
hashCode
()
:
0
;
int
result
=
(
int
)
(
id
^
(
id
>>>
32
));
result
=
31
*
result
+
(
name
!=
null
?
name
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
url
!=
null
?
url
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
description
!=
null
?
description
.
hashCode
()
:
0
);
return
result
;
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/p3p/Collector.java
View file @
5d116ce2
...
...
@@ -8,6 +8,7 @@ import android.os.Parcelable;
*/
public
class
Collector
implements
Parcelable
{
private
long
id
;
private
String
name
;
private
String
phone
;
private
String
email
;
...
...
@@ -16,6 +17,7 @@ public class Collector implements Parcelable {
}
protected
Collector
(
Parcel
in
)
{
id
=
in
.
readLong
();
name
=
in
.
readString
();
phone
=
in
.
readString
();
email
=
in
.
readString
();
...
...
@@ -33,6 +35,28 @@ public class Collector implements Parcelable {
}
};
@Override
public
int
describeContents
()
{
return
0
;
}
@Override
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
dest
.
writeLong
(
id
);
dest
.
writeString
(
name
);
dest
.
writeString
(
phone
);
dest
.
writeString
(
email
);
}
public
long
getId
()
{
return
id
;
}
public
Collector
setId
(
long
id
)
{
this
.
id
=
id
;
return
this
;
}
public
String
getName
()
{
return
name
;
}
...
...
@@ -67,28 +91,19 @@ public class Collector implements Parcelable {
Collector
collector
=
(
Collector
)
o
;
if
(
id
!=
collector
.
id
)
return
false
;
if
(
name
!=
null
?
!
name
.
equals
(
collector
.
name
)
:
collector
.
name
!=
null
)
return
false
;
if
(
phone
!=
null
?
!
phone
.
equals
(
collector
.
phone
)
:
collector
.
phone
!=
null
)
return
false
;
return
email
!=
null
?
email
.
equals
(
collector
.
email
)
:
collector
.
email
==
null
;
}
@Override
public
int
hashCode
()
{
int
result
=
name
!=
null
?
name
.
hashCode
()
:
0
;
int
result
=
(
int
)
(
id
^
(
id
>>>
32
));
result
=
31
*
result
+
(
name
!=
null
?
name
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
phone
!=
null
?
phone
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
email
!=
null
?
email
.
hashCode
()
:
0
);
return
result
;
}
@Override
public
int
describeContents
()
{
return
0
;
}
@Override
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
dest
.
writeString
(
name
);
dest
.
writeString
(
phone
);
dest
.
writeString
(
email
);
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/p3p/Datum.java
View file @
5d116ce2
...
...
@@ -3,11 +3,14 @@ package org.prlab.idic.privacypolicy.pojo.report.p3p;
import
android.os.Parcel
;
import
android.os.Parcelable
;
import
org.prlab.idic.privacypolicy.pojo.report.device.Model
;
/**
* Created by IDIC on 2017/2/16.
*/
public
class
Datum
implements
Parcelable
{
private
long
id
;
private
Type
type
;
private
String
description
;
...
...
@@ -15,6 +18,7 @@ public class Datum implements Parcelable {
}
private
Datum
(
Parcel
in
)
{
id
=
in
.
readLong
();
description
=
in
.
readString
();
type
=
Type
.
valueOf
(
in
.
readString
());
}
...
...
@@ -38,10 +42,20 @@ public class Datum implements Parcelable {
@Override
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
dest
.
writeLong
(
id
);
dest
.
writeString
(
description
);
dest
.
writeString
(
type
.
name
());
}
public
long
getId
()
{
return
id
;
}
public
Datum
setId
(
long
id
)
{
this
.
id
=
id
;
return
this
;
}
public
Type
getType
()
{
return
type
;
}
...
...
@@ -74,14 +88,18 @@ public class Datum implements Parcelable {
Datum
datum
=
(
Datum
)
o
;
if
(
id
!=
datum
.
id
)
return
false
;
if
(
type
!=
datum
.
type
)
return
false
;
return
description
!=
null
?
description
.
equals
(
datum
.
description
)
:
datum
.
description
==
null
;
}
@Override
public
int
hashCode
()
{
int
result
=
type
!=
null
?
type
.
hashCode
()
:
0
;
int
result
=
(
int
)
(
id
^
(
id
>>>
32
));
result
=
31
*
result
+
(
type
!=
null
?
type
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
description
!=
null
?
description
.
hashCode
()
:
0
);
return
result
;
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/p3p/Dispute.java
View file @
5d116ce2
...
...
@@ -8,6 +8,7 @@ import android.os.Parcelable;
*/
public
class
Dispute
implements
Parcelable
{
private
long
id
;
private
String
relatedOrganization
;
private
Type
type
;
...
...
@@ -15,6 +16,7 @@ public class Dispute implements Parcelable {
}
protected
Dispute
(
Parcel
in
)
{
id
=
in
.
readLong
();
relatedOrganization
=
in
.
readString
();
type
=
Type
.
valueOf
(
in
.
readString
());
}
...
...
@@ -26,6 +28,7 @@ public class Dispute implements Parcelable {
@Override
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
dest
.
writeLong
(
id
);
dest
.
writeString
(
relatedOrganization
);
dest
.
writeString
(
type
.
name
());
}
...
...
@@ -42,6 +45,14 @@ public class Dispute implements Parcelable {
}
};
public
long
getId
()
{
return
id
;
}
public
void
setId
(
long
id
)
{
this
.
id
=
id
;
}
public
String
getRelatedOrganization
()
{
return
relatedOrganization
;
}
...
...
@@ -71,14 +82,17 @@ public class Dispute implements Parcelable {
Dispute
dispute
=
(
Dispute
)
o
;
if
(
id
!=
dispute
.
id
)
return
false
;
if
(
relatedOrganization
!=
null
?
!
relatedOrganization
.
equals
(
dispute
.
relatedOrganization
)
:
dispute
.
relatedOrganization
!=
null
)
return
false
;
return
type
==
dispute
.
type
;
}
@Override
public
int
hashCode
()
{
int
result
=
relatedOrganization
!=
null
?
relatedOrganization
.
hashCode
()
:
0
;
int
result
=
(
int
)
(
id
^
(
id
>>>
32
));
result
=
31
*
result
+
(
relatedOrganization
!=
null
?
relatedOrganization
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
type
!=
null
?
type
.
hashCode
()
:
0
);
return
result
;
}
...
...
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/p3p/Purpose.java
View file @
5d116ce2
...
...
@@ -8,6 +8,7 @@ import android.os.Parcelable;
*/
public
class
Purpose
implements
Parcelable
{
private
long
id
;
private
Type
type
;
private
String
description
;
...
...
@@ -15,6 +16,7 @@ public class Purpose implements Parcelable {
}
protected
Purpose
(
Parcel
in
)
{
id
=
in
.
readLong
();
description
=
in
.
readString
();
type
=
Type
.
valueOf
(
in
.
readString
());
}
...
...
@@ -38,10 +40,19 @@ public class Purpose implements Parcelable {
@Override
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
dest
.
writeLong
(
id
);
dest
.
writeString
(
description
);
dest
.
writeString
(
type
.
name
());
}
public
long
getId
()
{
return
id
;
}
public
void
setId
(
long
id
)
{
this
.
id
=
id
;
}
public
Type
getType
()
{
return
type
;
}
...
...
@@ -73,14 +84,18 @@ public class Purpose implements Parcelable {
Purpose
purpose
=
(
Purpose
)
o
;
if
(
id
!=
purpose
.
id
)
return
false
;
if
(
type
!=
purpose
.
type
)
return
false
;
return
description
!=
null
?
description
.
equals
(
purpose
.
description
)
:
purpose
.
description
==
null
;
}
@Override
public
int
hashCode
()
{
int
result
=
type
!=
null
?
type
.
hashCode
()
:
0
;
int
result
=
(
int
)
(
id
^
(
id
>>>
32
));
result
=
31
*
result
+
(
type
!=
null
?
type
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
description
!=
null
?
description
.
hashCode
()
:
0
);
return
result
;
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/p3p/Recipient.java
View file @
5d116ce2
...
...
@@ -3,11 +3,14 @@ package org.prlab.idic.privacypolicy.pojo.report.p3p;
import
android.os.Parcel
;
import
android.os.Parcelable
;
import
org.prlab.idic.privacypolicy.pojo.report.device.Model
;
/**
* Created by IDIC on 2017/2/16.
*/
public
class
Recipient
implements
Parcelable
{
private
long
id
;
private
Type
type
;
private
String
description
;
...
...
@@ -15,6 +18,7 @@ public class Recipient implements Parcelable {
}
private
Recipient
(
Parcel
in
)
{
id
=
in
.
readLong
();
description
=
in
.
readString
();
type
=
Type
.
valueOf
(
in
.
readString
());
}
...
...
@@ -38,10 +42,20 @@ public class Recipient implements Parcelable {
@Override
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
dest
.
writeLong
(
id
);
dest
.
writeString
(
description
);
dest
.
writeString
(
type
.
name
());
}
public
long
getId
()
{
return
id
;
}
public
Recipient
setId
(
long
id
)
{
this
.
id
=
id
;
return
this
;
}
public
Type
getType
()
{
return
type
;
}
...
...
@@ -71,13 +85,16 @@ public class Recipient implements Parcelable {
Recipient
recipient
=
(
Recipient
)
o
;
if
(
id
!=
recipient
.
id
)
return
false
;
if
(
type
!=
recipient
.
type
)
return
false
;
return
description
!=
null
?
description
.
equals
(
recipient
.
description
)
:
recipient
.
description
==
null
;
}
@Override
public
int
hashCode
()
{
int
result
=
type
!=
null
?
type
.
hashCode
()
:
0
;
int
result
=
(
int
)
(
id
^
(
id
>>>
32
));
result
=
31
*
result
+
(
type
!=
null
?
type
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
description
!=
null
?
description
.
hashCode
()
:
0
);
return
result
;
}
...
...
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/p3p/Remedy.java
View file @
5d116ce2
...
...
@@ -6,15 +6,23 @@ import android.os.Parcelable;
/**
* Created by IDIC on 2017/2/16.
*/
public
enum
Remedy
implements
Parcelable
{
CORRECT
,
MONEY
,
LAW
;
public
class
Remedy
implements
Parcelable
{
Remedy
()
{
private
long
id
;
private
Type
type
;
public
Remedy
()
{
}
private
Remedy
(
Parcel
in
)
{
id
=
in
.
readLong
();
type
=
Type
.
valueOf
(
in
.
readString
());
}
@Override
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
dest
.
writeString
(
name
());
dest
.
writeLong
(
id
);
dest
.
writeString
(
type
.
name
());
}
@Override
...
...
@@ -25,7 +33,7 @@ public enum Remedy implements Parcelable {
public
static
final
Creator
<
Remedy
>
CREATOR
=
new
Creator
<
Remedy
>()
{
@Override
public
Remedy
createFromParcel
(
Parcel
in
)
{
return
Remedy
.
valueOf
(
in
.
readString
()
);
return
new
Remedy
(
in
);
}
@Override
...
...
@@ -33,4 +41,27 @@ public enum Remedy implements Parcelable {
return
new
Remedy
[
size
];
}
};
public
long
getId
()
{
return
id
;
}
public
Remedy
setId
(
long
id
)
{
this
.
id
=
id
;
return
this
;
}
public
Type
getType
()
{
return
type
;
}
public
Remedy
setType
(
Type
type
)
{
this
.
type
=
type
;
return
this
;
}
public
enum
Type
{
CORRECT
,
MONEY
,
LAW
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/pojo/report/p3p/Statement.java
View file @
5d116ce2
...
...
@@ -11,22 +11,20 @@ import java.util.List;
*/
public
class
Statement
implements
Parcelable
{
private
long
id
;
private
String
consequence
;
private
List
<
Purpose
>
purposes
=
new
LinkedList
<>();
private
List
<
Datum
>
data
=
new
LinkedList
<>();
private
List
<
Recipient
>
recipients
=
new
LinkedList
<>();
private
List
<
Remedy
>
remedies
=
new
LinkedList
<>();
private
Retention
retention
;
public
Statement
()
{
}
private
Statement
(
Parcel
in
)
{
id
=
in
.
readLong
();
consequence
=
in
.
readString
();
purposes
=
in
.
createTypedArrayList
(
Purpose
.
CREATOR
);
data
=
in
.
createTypedArrayList
(
Datum
.
CREATOR
);
recipients
=
in
.
createTypedArrayList
(
Recipient
.
CREATOR
);
remedies
=
in
.
createTypedArrayList
(
Remedy
.
CREATOR
);
retention
=
in
.
readParcelable
(
Retention
.
class
.
getClassLoader
());
}
...
...
@@ -49,14 +47,23 @@ public class Statement implements Parcelable {
@Override
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
dest
.
writeLong
(
id
);
dest
.
writeString
(
consequence
);
dest
.
writeTypedList
(
purposes
);
dest
.
writeTypedList
(
data
);
dest
.
writeTypedList
(
recipients
);
dest
.
writeTypedList
(
remedies
);
dest
.
writeParcelable
(
retention
,
flags
);
}
public
long
getId
()
{
return
id
;
}
public
Statement
setId
(
long
id
)
{
this
.
id
=
id
;
return
this
;
}
public
String
getConsequence
()
{
return
consequence
;
}
...
...
@@ -108,20 +115,6 @@ public class Statement implements Parcelable {
return
this
;
}
public
List
<
Remedy
>
getRemedies
()
{
return
remedies
;
}
public
Statement
setRemedies
(
List
<
Remedy
>
remedies
)
{
this
.
remedies
=
remedies
;
return
this
;
}
public
Statement
addRemedy
(
Remedy
remedy
)
{
if
(
null
!=
this
.
remedies
)
this
.
remedies
.
add
(
remedy
);
return
this
;
}
public
Retention
getRetention
()
{
return
retention
;
}
...
...
@@ -143,7 +136,6 @@ public class Statement implements Parcelable {
if
(
purposes
!=
null
?
!
purposes
.
equals
(
statement
.
purposes
)
:
statement
.
purposes
!=
null
)
return
false
;
if
(
data
!=
null
?
!
data
.
equals
(
statement
.
data
)
:
statement
.
data
!=
null
)
return
false
;
if
(
recipients
!=
null
?
!
recipients
.
equals
(
statement
.
recipients
)
:
statement
.
recipients
!=
null
)
return
false
;
if
(
remedies
!=
null
?
!
remedies
.
equals
(
statement
.
remedies
)
:
statement
.
remedies
!=
null
)
return
false
;
return
retention
==
statement
.
retention
;
}
...
...
@@ -153,7 +145,6 @@ public class Statement implements Parcelable {
result
=
31
*
result
+
(
purposes
!=
null
?
purposes
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
data
!=
null
?
data
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
recipients
!=
null
?
recipients
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
remedies
!=
null
?
remedies
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
retention
!=
null
?
retention
.
hashCode
()
:
0
);
return
result
;
}
...
...
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/storage/PrivacyPolicyContract.java
View file @
5d116ce2
...
...
@@ -14,6 +14,9 @@ public class PrivacyPolicyContract {
public
static
final
String
PATH_PRIVACY_POLICY
=
"privacy_policy"
;
public
static
final
String
DECLINE
=
"decline"
;
public
static
final
String
ACCEPT
=
"accept"
;
public
static
final
class
PolicyEntry
implements
BaseColumns
{
public
static
final
Uri
CONTENT_URI
=
BASE_CONTENT_URI
.
buildUpon
()
...
...
@@ -23,19 +26,9 @@ public class PrivacyPolicyContract {
public
static
final
String
TABLE_NAME
=
"policies"
;
public
static
final
String
COLUMN_MAC
=
"mac"
;
public
static
final
String
COLUMN_
UUIDs
=
"uuid
"
;
public
static
final
String
COLUMN_
POLICY
=
"policy
"
;
public
static
final
String
COLUMN_PREFERENCE
=
"preference"
;
}
public
static
String
getSqlSelectForMACAndUUIDsOnwards
()
{
return
PolicyEntry
.
COLUMN_MAC
+
" = ? "
+
" AND "
+
PolicyEntry
.
COLUMN_UUIDs
+
" = ? "
;
}
public
static
String
getSqlSelectForMACAndRelatedUUIDsOnwards
()
{
return
PolicyEntry
.
COLUMN_MAC
+
" = ? "
+
" AND "
+
PolicyEntry
.
COLUMN_UUIDs
+
" LIKE ? "
;
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/storage/PrivacyPolicyDbHelper.java
View file @
5d116ce2
...
...
@@ -20,8 +20,10 @@ class PrivacyPolicyDbHelper extends SQLiteOpenHelper {
public
void
onCreate
(
SQLiteDatabase
db
)
{
db
.
execSQL
(
"CREATE TABLE "
+
PrivacyPolicyContract
.
PolicyEntry
.
TABLE_NAME
+
" ("
+
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_MAC
+
" CHAR(12) NOT NULL, "
+
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_UUIDs
+
" TEXT NOT NULL, "
+
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_PREFERENCE
+
" TEXT);"
);
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_POLICY
+
" TEXT NOT NULL, "
+
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_PREFERENCE
+
" INTEGER, "
+
"PRIMARY KEY("
+
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_MAC
+
", "
+
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_POLICY
+
"));"
);
}
@Override
...
...
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/storage/PrivacyPolicyProvider.java
View file @
5d116ce2
...
...
@@ -51,7 +51,8 @@ public class PrivacyPolicyProvider extends ContentProvider {
default
:
throw
new
UnsupportedOperationException
(
"Unknown uri: "
+
uri
);
}
cursor
.
setNotificationUri
(
getContext
().
getContentResolver
(),
uri
);
if
(
getContext
()
!=
null
)
cursor
.
setNotificationUri
(
getContext
().
getContentResolver
(),
uri
);
return
cursor
;
}
...
...
@@ -72,7 +73,8 @@ public class PrivacyPolicyProvider extends ContentProvider {
db
.
setTransactionSuccessful
();
Uri
curr
=
ContentUris
.
withAppendedId
(
PrivacyPolicyContract
.
PolicyEntry
.
CONTENT_URI
,
_id
);
//將新插入的資料uri進行通知,以便獲取最新的資料
getContext
().
getContentResolver
().
notifyChange
(
curr
,
null
);
if
(
getContext
()
!=
null
)
getContext
().
getContentResolver
().
notifyChange
(
curr
,
null
);
return
curr
;
}
finally
{
db
.
endTransaction
();
...
...
@@ -112,7 +114,7 @@ public class PrivacyPolicyProvider extends ContentProvider {
db
.
endTransaction
();
/* If we actually deleted any rows, notify that a change has occurred to this URI */
if
(
numRowsDeleted
!=
0
)
{
if
(
numRowsDeleted
!=
0
&&
getContext
()
!=
null
)
{
getContext
().
getContentResolver
().
notifyChange
(
uri
,
null
);
}
...
...
@@ -136,7 +138,8 @@ public class PrivacyPolicyProvider extends ContentProvider {
default
:
throw
new
UnsupportedOperationException
(
"Unknown uri: "
+
uri
);
}
getContext
().
getContentResolver
().
notifyChange
(
uri
,
null
);
if
(
getContext
()
!=
null
)
getContext
().
getContentResolver
().
notifyChange
(
uri
,
null
);
return
count
;
}
...
...
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/storage/PrivacyPolicyStorageImpl.java
View file @
5d116ce2
...
...
@@ -13,6 +13,9 @@ import java.util.LinkedList;
import
java.util.List
;
import
java.util.Set
;
import
static
org
.
prlab
.
idic
.
privacypolicy
.
storage
.
PrivacyPolicyContract
.
ACCEPT
;
import
static
org
.
prlab
.
idic
.
privacypolicy
.
storage
.
PrivacyPolicyContract
.
DECLINE
;
/**
* Created by IDIC on 2017/2/15.
*/
...
...
@@ -25,12 +28,12 @@ public class PrivacyPolicyStorageImpl implements StorageInterface<Integer, Strin
private
static
final
String
[]
PRIVACY_POLICY_PROJECTION
=
{
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_MAC
,
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_
UUIDs
,
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_
POLICY
,
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_PREFERENCE
};
public
static
final
int
INDEX_POLICY_MAC
=
0
;
public
static
final
int
INDEX_POLICY_
UUIDs
=
1
;
public
static
final
int
INDEX_POLICY_
POLICY
=
1
;
public
static
final
int
INDEX_POLICY_PREFERENCE
=
2
;
public
PrivacyPolicyStorageImpl
(
ContentResolver
contentResolver
,
String
targetDeviceMAC
)
{
...
...
@@ -39,139 +42,60 @@ public class PrivacyPolicyStorageImpl implements StorageInterface<Integer, Strin
}
@Override
public
StorageInterface
remove
(
List
<
String
>
layerUUIDs
)
{
remove
(
BaseUtils
.
stringList2ArrayString
(
layerUUIDs
)
);
public
StorageInterface
decline
(
Integer
id
)
{
choose
(
id
,
DECLINE
);
return
this
;
}
private
void
remove
(
String
layerUUIDs
)
{
int
impactRow
=
mContentResolver
.
delete
(
PrivacyPolicyContract
.
PolicyEntry
.
CONTENT_URI
,
PrivacyPolicyContract
.
getSqlSelectForMACAndUUIDsOnwards
(),
new
String
[]{
mTargetDeviceMAC
,
layerUUIDs
}
);
removeChildLayerPolicies
(
layerUUIDs
);
Log
.
i
(
TAG
,
"Remove ["
+
layerUUIDs
+
"] "
+
(
impactRow
==
1
?
"success"
:
"failure"
)
+
"."
);
}
private
void
removeChildLayerPolicies
(
String
layerUUIDs
)
{
List
<
String
>
subUUIDs
=
getRelatedUUIDs
(
true
,
layerUUIDs
);
for
(
String
subUUID
:
subUUIDs
)
{
remove
(
subUUID
);
}
}
@Override
public
StorageInterface
put
(
List
<
Integer
>
selection
,
List
<
String
>
layerUUIDs
)
{
put
(
selection
,
BaseUtils
.
stringList2ArrayString
(
layerUUIDs
)
);
public
StorageInterface
accept
(
Integer
id
)
{
choose
(
id
,
ACCEPT
);
return
this
;
}
private
void
put
(
List
<
Integer
>
selection
,
String
layerUUIDs
)
{
for
(
int
s
:
selection
)
{
private
void
choose
(
Integer
id
,
String
choice
)
{
ContentValues
insertContentValues
=
new
ContentValues
();
insertContentValues
.
put
(
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_MAC
,
mTargetDeviceMAC
);
insertContentValues
.
put
(
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_POLICY
,
id
);
insertContentValues
.
put
(
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_PREFERENCE
,
choice
);
Uri
newUri
=
mContentResolver
.
insert
(
PrivacyPolicyContract
.
PolicyEntry
.
CONTENT_URI
,
insertContentValues
);
if
(
newUri
==
null
)
{
ContentValues
updateContentValues
=
new
ContentValues
();
updateContentValues
.
put
(
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_PREFERENCE
,
s
);
updateContentValues
.
put
(
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_PREFERENCE
,
choice
);
ContentValues
insertContentValues
=
new
ContentValues
(
updateContentValues
);
insertContentValues
.
put
(
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_MAC
,
mTargetDeviceMAC
);
insertContentValues
.
put
(
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_UUIDs
,
layerUUIDs
);
Uri
mNewUri
=
mContentResolver
.
insert
(
int
count
=
mContentResolver
.
update
(
PrivacyPolicyContract
.
PolicyEntry
.
CONTENT_URI
,
insertContentValues
updateContentValues
,
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_MAC
+
" = ? "
+
" AND "
+
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_POLICY
+
" = ? "
+
" AND "
+
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_PREFERENCE
+
" = ? "
,
new
String
[]{
mTargetDeviceMAC
,
String
.
valueOf
(
id
),
choice
}
);
if
(
mNewUri
==
null
)
{
int
count
=
mContentResolver
.
update
(
PrivacyPolicyContract
.
PolicyEntry
.
CONTENT_URI
,
updateContentValues
,
PrivacyPolicyContract
.
getSqlSelectForMACAndUUIDsOnwards
(),
new
String
[]{
mTargetDeviceMAC
,
layerUUIDs
}
);
Log
.
i
(
TAG
,
"Update "
+
String
.
valueOf
(
s
)
+
" to ["
+
layerUUIDs
+
"] "
+
(
count
==
1
?
"success"
:
"failure"
)
+
"."
);
}
else
{
Log
.
i
(
TAG
,
"Put "
+
String
.
valueOf
(
s
)
+
" to ["
+
layerUUIDs
+
"] success."
);
}
removeChildLayerPolicies
(
layerUUIDs
);
Log
.
i
(
TAG
,
"Update "
+
String
.
valueOf
(
choice
)
+
" to ["
+
id
+
"] "
+
(
count
==
1
?
"success"
:
"failure"
)
+
"."
);
}
else
{
Log
.
i
(
TAG
,
"Put "
+
String
.
valueOf
(
choice
)
+
" to ["
+
id
+
"] success."
);
}
}
@Override
public
List
<
Integer
>
get
(
List
<
String
>
layerUUIDs
)
{
return
get
(
BaseUtils
.
stringList2ArrayString
(
layerUUIDs
));
}
private
List
<
Integer
>
get
(
String
UUIDs
)
{
try
(
Cursor
cursor
=
mContentResolver
.
query
(
PrivacyPolicyContract
.
PolicyEntry
.
CONTENT_URI
,
public
String
get
(
Integer
id
)
{
String
result
=
null
;
try
(
Cursor
cursor
=
mContentResolver
.
query
(
PrivacyPolicyContract
.
PolicyEntry
.
CONTENT_URI
,
PRIVACY_POLICY_PROJECTION
,
PrivacyPolicyContract
.
getSqlSelectForMACAndUUIDsOnwards
(),
new
String
[]{
mTargetDeviceMAC
,
UUIDs
},
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_UUIDs
+
" ASC"
))
{
List
<
Integer
>
targets
=
new
LinkedList
<>();
Set
<
Integer
>
targetSet
=
new
HashSet
<>();
if
(
cursor
!=
null
&&
cursor
.
getCount
()
>
0
)
{
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_MAC
+
" = ? "
+
" AND "
+
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_POLICY
+
" = ? "
,
new
String
[]{
mTargetDeviceMAC
,
String
.
valueOf
(
id
)},
null
))
{
if
(
cursor
!=
null
&&
cursor
.
getCount
()
==
1
)
{
cursor
.
moveToFirst
();
do
{
String
target
=
cursor
.
getString
(
INDEX_POLICY_PREFERENCE
);
Log
.
i
(
TAG
,
"Get ["
+
UUIDs
+
"] -> ["
+
String
.
valueOf
(
target
)
+
"]"
);
if
(
target
==
null
)
return
null
;
targetSet
.
add
(
Integer
.
valueOf
(
target
));
}
while
(
cursor
.
moveToNext
());
}
targetSet
.
addAll
(
getChildLayerPolicies
(
UUIDs
));
targets
.
addAll
(
targetSet
);
Log
.
i
(
TAG
,
"Get ["
+
UUIDs
+
"] -> null"
);
return
targets
;
}
}
private
List
<
Integer
>
getChildLayerPolicies
(
String
layerUUIDs
)
{
List
<
Integer
>
selections
=
new
LinkedList
<>();
List
<
Integer
>
selectionSet
=
new
LinkedList
<>();
List
<
String
>
subUUIDs
=
getRelatedUUIDs
(
true
,
layerUUIDs
);
for
(
String
subUUID
:
subUUIDs
)
{
List
<
Integer
>
subSelections
=
get
(
subUUID
);
if
(
subSelections
!=
null
)
selectionSet
.
addAll
(
subSelections
);
}
selections
.
addAll
(
selectionSet
);
return
selections
;
}
private
List
<
String
>
getRelatedUUIDs
(
boolean
isLower
,
String
UUIDs
)
{
List
<
String
>
UUIDList
=
new
LinkedList
<>();
if
(
isLower
)
{
try
(
Cursor
cursor
=
mContentResolver
.
query
(
PrivacyPolicyContract
.
PolicyEntry
.
CONTENT_URI
,
PRIVACY_POLICY_PROJECTION
,
PrivacyPolicyContract
.
getSqlSelectForMACAndRelatedUUIDsOnwards
(),
new
String
[]{
mTargetDeviceMAC
,
UUIDs
+
"_%"
},
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_UUIDs
+
" ASC"
))
{
if
(
cursor
!=
null
)
while
(
cursor
.
moveToNext
())
{
String
targetUUIDs
=
cursor
.
getString
(
INDEX_POLICY_UUIDs
);
UUIDList
.
add
(
targetUUIDs
);
}
}
}
else
{
if
(
UUIDs
.
contains
(
", "
))
{
UUIDs
=
UUIDs
.
substring
(
0
,
UUIDs
.
lastIndexOf
(
", "
));
try
(
Cursor
cursor
=
mContentResolver
.
query
(
PrivacyPolicyContract
.
PolicyEntry
.
CONTENT_URI
,
PRIVACY_POLICY_PROJECTION
,
PrivacyPolicyContract
.
getSqlSelectForMACAndRelatedUUIDsOnwards
(),
new
String
[]{
mTargetDeviceMAC
,
"%"
+
UUIDs
},
PrivacyPolicyContract
.
PolicyEntry
.
COLUMN_UUIDs
+
" ASC"
))
{
if
(
cursor
!=
null
)
while
(
cursor
.
moveToNext
())
{
String
targetUUIDs
=
cursor
.
getString
(
INDEX_POLICY_UUIDs
);
UUIDList
.
add
(
targetUUIDs
);
}
}
result
=
cursor
.
getString
(
INDEX_POLICY_PREFERENCE
);
}
}
return
UUIDLis
t
;
return
resul
t
;
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/storage/StorageInterface.java
View file @
5d116ce2
...
...
@@ -5,12 +5,12 @@ import java.util.List;
/**
* Created by IDIC on 2017/2/15.
*/
interface
StorageInterface
<
Result
,
Key
>
{
interface
StorageInterface
<
Key
,
Result
>
{
StorageInterface
remove
(
List
<
Key
>
layerUUIDs
);
StorageInterface
decline
(
Key
id
);
StorageInterface
put
(
List
<
Result
>
choices
,
List
<
Key
>
layerUUIDs
);
StorageInterface
accept
(
Key
id
);
List
<
Result
>
get
(
List
<
Key
>
layerUUIDs
);
Result
get
(
Key
id
);
}
This diff is collapsed.
Click to expand it.
app/src/main/java/org/prlab/idic/privacypolicy/tool/BaseUtils.java
View file @
5d116ce2
package
org.prlab.idic.privacypolicy.tool
;
import
org.prlab.idic.privacypolicy.pojo.report.Layer
;
import
org.prlab.idic.privacypolicy.pojo.report.p3p.Remedy
;
import
java.nio.ByteBuffer
;
import
java.util.ArrayList
;
import
java.util.LinkedList
;
import
java.util.List
;
/**
...
...
@@ -41,18 +39,18 @@ public class BaseUtils {
return
bite
&
0xFF
;
}
public
static
String
convertRemedies2String
(
List
<
Remedy
>
enums
)
{
if
(
enums
.
size
()
<=
0
)
return
""
;
private
static
final
String
SPLIT_STRING
=
", "
;
public
static
String
convertRemedies2String
(
List
<
Remedy
>
remedies
)
{
if
(
remedies
.
size
()
<=
0
)
return
""
;
StringBuilder
builder
=
new
StringBuilder
();
for
(
Enum
e
:
enum
s
)
{
builder
.
append
(
e
.
name
()).
append
(
", "
);
for
(
Remedy
remedy
:
remedie
s
)
{
builder
.
append
(
remedy
.
getType
().
name
()).
append
(
SPLIT_STRING
);
}
builder
.
delete
(
builder
.
length
()
-
2
,
builder
.
length
());
return
builder
.
toString
();
}
private
static
final
String
SPLIT_STRING
=
", "
;
public
static
List
<
String
>
arrayString2stringArray
(
String
arrayString
)
{
return
BaseUtils
.
arrayString2objectArray
(
arrayString
,
new
BaseUtils
.
ObjectConverter
<
String
>()
{
@Override
...
...
@@ -116,14 +114,6 @@ public class BaseUtils {
return
builder
.
toString
();
}
public
static
List
<
String
>
layer2UUID
(
List
<
Layer
>
layers
)
{
List
<
String
>
UUIDs
=
new
LinkedList
<>();
if
(
null
==
layers
||
layers
.
isEmpty
())
return
UUIDs
;
for
(
Layer
layer
:
layers
)
UUIDs
.
add
(
layer
.
getUUID
());
return
UUIDs
;
}
public
static
byte
[]
int2Bytes
(
int
i
)
{
return
ByteBuffer
.
allocate
(
4
).
putInt
(
i
).
array
();
}
...
...
This diff is collapsed.
Click to expand it.
app/src/main/res/drawable/ic_arrow_drop_down_black_24dp.xml
0 → 100644
View file @
5d116ce2
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:width=
"24dp"
android:height=
"24dp"
android:viewportWidth=
"24.0"
android:viewportHeight=
"24.0"
>
<path
android:fillColor=
"@color/colorPrimaryDark"
android:pathData=
"M7,10l5,5 5,-5z"
/>
</vector>
This diff is collapsed.
Click to expand it.
app/src/main/res/drawable/ic_arrow_drop_up_black_24dp.xml
0 → 100644
View file @
5d116ce2
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:width=
"24dp"
android:height=
"24dp"
android:viewportWidth=
"24.0"
android:viewportHeight=
"24.0"
>
<path
android:fillColor=
"@color/colorPrimaryDark"
android:pathData=
"M7,14l5,-5 5,5z"
/>
</vector>
This diff is collapsed.
Click to expand it.
app/src/main/res/layout/actiivty_dialog_device_info.xml
View file @
5d116ce2
...
...
@@ -4,36 +4,21 @@
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_margin=
"@dimen/activity_horizontal_margin"
android:orientation=
"vertical"
>
<Button
android:layout_centerHorizontal=
"true"
android:layout_alignParentBottom=
"true"
android:id=
"@+id/button_device_back"
android:layout_width=
"@dimen/button_width_size"
android:layout_height=
"@dimen/item_size"
android:layout_gravity=
"center"
android:layout_marginBottom=
"@dimen/median_size"
android:layout_marginTop=
"@dimen/median_size"
android:onClick=
"onBackButtonClick"
android:text=
"@string/message_back"
android:textSize=
"@dimen/font_bigger_size"
/>
<android.support.v7.widget.RecyclerView
android:layout_above=
"@id/button_device_back"
android:id=
"@+id/layout_device_info"
android:layout_width=
"match_parent"
android:layout_height=
"
match_par
ent"
android:layout_height=
"
wrap_cont
ent"
app:layoutManager=
"android.support.v7.widget.LinearLayoutManager"
tools:listitem=
"@layout/recycler_view_item_horizontally"
/>
<android.support.v7.widget.RecyclerView
android:layout_above=
"@id/button_device_back"
android:id=
"@+id/layout_device_icon"
android:layout_below=
"@+id/layout_device_info"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:visibility=
"gone"
android:layout_height=
"wrap_content"
app:layoutManager=
"android.support.v7.widget.LinearLayoutManager"
tools:listitem=
"@layout/recycler_view_icon"
/>
...
...
This diff is collapsed.
Click to expand it.
app/src/main/res/layout/activity_dialog_policy.xml
deleted
100644 → 0
View file @
9a0ab3b5
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<LinearLayout
android:layout_alignParentBottom=
"true"
android:id=
"@+id/layout_policy_choose_buttons"
android:gravity=
"center"
android:orientation=
"horizontal"
android:paddingTop=
"@dimen/small_size"
android:paddingBottom=
"@dimen/small_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<Button
android:text=
"@string/message_agree"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:onClick=
"onAgreeButtonClick"
android:textSize=
"@dimen/font_bigger_size"
android:layout_width=
"@dimen/button_width_size"
android:layout_height=
"@dimen/item_size"
/>
<Button
android:text=
"@string/message_deny"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:onClick=
"onDenyButtonClick"
android:textSize=
"@dimen/font_bigger_size"
android:layout_width=
"@dimen/button_width_size"
android:layout_height=
"@dimen/item_size"
/>
</LinearLayout>
<ScrollView
android:layout_alignParentTop=
"true"
android:layout_above=
"@id/layout_policy_choose_buttons"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<LinearLayout
android:orientation=
"vertical"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
android:text=
"@string/policy_statement_collector_title"
android:gravity=
"center_vertical"
android:textSize=
"@dimen/font_bigger_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/recycler_view_statement_collector"
app:layoutManager=
"android.support.v7.widget.LinearLayoutManager"
tools:listitem=
"@layout/recycler_view_item_horizontally"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<View
android:background=
"@color/colorSeparator"
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
/>
<TextView
android:text=
"@string/policy_statement_access_title"
android:gravity=
"center_vertical"
android:textSize=
"@dimen/font_bigger_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<TextView
android:layout_marginTop=
"@dimen/small_size"
android:id=
"@+id/recycler_view_statement_access"
android:gravity=
"center"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<View
android:background=
"@color/colorSeparator"
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
/>
<TextView
android:text=
"@string/policy_statement_dispute_title"
android:gravity=
"center_vertical"
android:textSize=
"@dimen/font_bigger_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/recycler_view_statement_dispute"
app:layoutManager=
"android.support.v7.widget.LinearLayoutManager"
tools:listitem=
"@layout/recycler_view_item_horizontally"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<View
android:background=
"@color/colorSeparator"
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
/>
<TextView
android:text=
"@string/policy_statement_title"
android:gravity=
"center_vertical"
android:textSize=
"@dimen/font_bigger_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<android.support.v7.widget.RecyclerView
app:layoutManager=
"android.support.v7.widget.LinearLayoutManager"
tools:listitem=
"@layout/recycler_view_statement"
android:id=
"@+id/recycler_view_statement_content"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
</LinearLayout>
</ScrollView>
</RelativeLayout>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/res/layout/activity_report.xml
View file @
5d116ce2
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_margin=
"@dimen/activity_horizontal_margin"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
xmlns:tools=
"http://schemas.android.com/tools"
>
<LinearLayout
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"
android:layout_margin=
"@dimen/activity_horizontal_margin"
android:orientation=
"vertical"
>
<TextView
android:id=
"@+id/text_report_title"
android:text=
"@string/policy_information_title"
android:gravity=
"center_vertical"
android:textSize=
"@dimen/font_bigger_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<LinearLayout
android:layout_below=
"@id/text_report_title"
android:id=
"@+id/layout_report_info"
android:orientation=
"vertical"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<include
android:id=
"@+id/item_report_version"
layout=
"@layout/item_key_value_horizontally"
/>
<include
android:id=
"@+id/item_report_description"
layout=
"@layout/item_key_value_horizontally"
/>
</LinearLayout>
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:gravity=
"center_vertical"
android:text=
"@string/policy_information_title"
android:textSize=
"@dimen/font_bigger_size"
/>
<Button
android:id=
"@+id/button_report_device"
android:onClick=
"onDeviceInfoButtonClicked"
android:layout_below=
"@id/layout_report_info"
android:text=
"@string/policy_report_device_information"
android:textSize=
"@dimen/font_middle_size"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/recycler_view_report_description"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layoutManager=
"android.support.v7.widget.LinearLayoutManager"
tools:listitem=
"@layout/recycler_view_item_horizontally"
/>
<Button
android:id=
"@+id/button_report_back"
android:onClick=
"onBackButtonClicked"
android:visibility=
"gone"
android:layout_alignParentBottom=
"true"
android:text=
"@string/message_back"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:textSize=
"@dimen/font_bigger_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:onClick=
"onDeviceInfoButtonClicked"
android:text=
"@string/policy_report_device_information"
android:textSize=
"@dimen/font_middle_size"
/>
<LinearLayout
android:orientation=
"vertical"
android:layout_below=
"@id/button_report_device"
android:layout_above=
"@id/button_report_back"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
android:layout_marginTop=
"@dimen/median_size"
android:text=
"@string/message_collect_data"
android:id=
"@+id/text_report_policies_title"
android:gravity=
"center_vertical"
android:textSize=
"@dimen/font_bigger_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<Button
android:id=
"@+id/button_report_reset"
android:text=
"@string/message_reset"
android:textSize=
"@dimen/font_middle_size"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<android.support.v7.widget.RecyclerView
tools:listitem=
"@layout/recycler_view_item"
app:layoutManager=
"android.support.v7.widget.LinearLayoutManager"
android:id=
"@+id/recycler_view_report_policies"
android:layout_width=
"match_parent"
android:layout_weight=
"1"
android:layout_height=
"0dp"
/>
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<TextView
android:layout_marginTop=
"@dimen/median_siz
e"
android:text=
"@string/message_more_detail
"
android:id=
"@+id/text_report_child_layers_title
"
android:gravity=
"center_vertical
"
android:textSize=
"@dimen/font_bigger_size
"
android:layout_width=
"match_parent
"
android:layout_height=
"wrap_content"
/>
android:id=
"@+id/text_report_policies_titl
e"
android:layout_width=
"match_parent
"
android:layout_height=
"wrap_content
"
android:layout_marginTop=
"@dimen/median_size
"
android:gravity=
"center_vertical
"
android:text=
"@string/message_collect_data
"
android:textSize=
"@dimen/font_bigger_size"
/>
<android.support.v7.widget.RecyclerView
tools:listitem=
"@layout/recycler_view_item
"
app:layoutManager=
"android.support.v7.widget.LinearLayoutManager
"
android:id=
"@+id/recycler_view_report_child_layers
"
android:layout_weight=
"1"
android:layout_width=
"match_parent
"
android:layout_height=
"0dp"
/>
android:id=
"@+id/recycler_view_report_policies
"
android:layout_width=
"match_parent
"
android:layout_height=
"0dp
"
android:layout_weight=
"1"
app:layoutManager=
"android.support.v7.widget.LinearLayoutManager
"
tools:listitem=
"@layout/recycler_view_policy"
/>
</LinearLayout>
</RelativeLayout>
\ No newline at end of file
</LinearLayout>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/res/layout/item_key_value_horizontally.xml
deleted
100644 → 0
View file @
9a0ab3b5
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
tools:text=
"key"
android:gravity=
"center"
android:layout_alignParentStart=
"true"
android:layout_centerVertical=
"true"
android:id=
"@+id/text_key"
android:textSize=
"@dimen/font_middle_size"
android:minHeight=
"@dimen/small_item_size"
android:layout_width=
"@dimen/text_key_size"
android:layout_height=
"wrap_content"
/>
<TextView
tools:text=
"value"
android:layout_centerVertical=
"true"
android:gravity=
"center_vertical"
android:id=
"@+id/text_value"
android:layout_marginStart=
"@dimen/median_size"
android:layout_toEndOf=
"@id/text_key"
android:layout_alignParentEnd=
"true"
android:textSize=
"@dimen/font_middle_size"
android:minHeight=
"@dimen/small_item_size"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
/>
</RelativeLayout>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/res/layout/item_key_value_horizontally_left.xml
deleted
100644 → 0
View file @
9a0ab3b5
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
android:layout_marginStart=
"@dimen/activity_vertical_margin"
android:layout_marginEnd=
"@dimen/activity_vertical_margin"
tools:text=
"key"
android:gravity=
"center_vertical"
android:layout_alignParentStart=
"true"
android:id=
"@+id/text_key"
android:textSize=
"@dimen/font_normal_size"
android:minHeight=
"@dimen/small_item_size"
android:layout_width=
"@dimen/text_key_size"
android:layout_height=
"wrap_content"
/>
<TextView
tools:text=
"value"
android:gravity=
"center_vertical"
android:id=
"@+id/text_value"
android:layout_marginStart=
"@dimen/median_size"
android:layout_toEndOf=
"@id/text_key"
android:layout_alignParentEnd=
"true"
android:textSize=
"@dimen/font_normal_size"
android:minHeight=
"@dimen/small_item_size"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
/>
</RelativeLayout>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/res/layout/recycler_view_child_policies.xml
deleted
100644 → 0
View file @
9a0ab3b5
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:orientation=
"vertical"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<Button
tools:text=
"12345678-1234-1234-1234-12345678"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:id=
"@+id/button_child_policy"
android:textSize=
"@dimen/font_normal_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
</LinearLayout>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/res/layout/recycler_view_item.xml
deleted
100644 → 0
View file @
9a0ab3b5
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:orientation=
"vertical"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<Button
tools:text=
"111111111111-1111-1111-1111-111111111111111111"
android:gravity=
"center"
android:id=
"@+id/button_item"
android:textSize=
"@dimen/font_middle_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
</LinearLayout>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/res/layout/recycler_view_item_horizontally.xml
View file @
5d116ce2
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_marginTop=
"@dimen/small_size
"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
xmlns:tools=
"http://schemas.android.com/tools
"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<include
android:id=
"@+id/item_info"
layout=
"@layout/item_key_value_horizontally"
/>
<TextView
android:id=
"@+id/text_key"
android:layout_width=
"@dimen/text_key_size"
android:layout_height=
"wrap_content"
android:layout_alignParentStart=
"true"
android:layout_centerVertical=
"true"
android:layout_marginEnd=
"@dimen/activity_empty_margin"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:gravity=
"center_vertical|start"
android:minHeight=
"@dimen/small_item_size"
android:textSize=
"@dimen/font_middle_size"
tools:text=
"key"
/>
<TextView
android:id=
"@+id/text_value"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentEnd=
"true"
android:layout_centerVertical=
"true"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_toEndOf=
"@id/text_key"
android:gravity=
"center_vertical"
android:minHeight=
"@dimen/small_item_size"
android:textSize=
"@dimen/font_middle_size"
tools:text=
"value"
/>
</RelativeLayout>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/res/layout/recycler_view_policy.xml
0 → 100644
View file @
5d116ce2
<?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"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<RelativeLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"@dimen/median_size"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_marginTop=
"@dimen/median_size"
>
<Switch
android:id=
"@+id/switch_policy_accept"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentEnd=
"true"
android:gravity=
"center"
/>
<ImageView
android:src=
"@drawable/ic_arrow_drop_up_black_24dp"
android:id=
"@+id/image_view_policy_scaled"
android:layout_width=
"@dimen/small_item_size"
android:layout_height=
"@dimen/small_item_size"
android:layout_alignParentEnd=
"true"
android:layout_alignParentBottom=
"true"
android:layout_below=
"@id/switch_policy_accept"
/>
<TextView
android:id=
"@+id/text_policy_title"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentStart=
"true"
android:layout_toStartOf=
"@id/switch_policy_accept"
android:textColor=
"@color/colorText"
android:textSize=
"@dimen/font_bigger_size"
android:textStyle=
"bold"
tools:text=
"Policy1"
/>
<TextView
android:id=
"@+id/text_policy_description"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_below=
"@id/text_policy_title"
android:layout_toStartOf=
"@id/switch_policy_accept"
android:textSize=
"@dimen/font_middle_size"
tools:text=
"Description"
/>
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/recycler_view_policy_content"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"@dimen/median_size"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_marginTop=
"@dimen/activity_empty_margin"
android:visibility=
"gone"
app:layoutManager=
"android.support.v7.widget.LinearLayoutManager"
tools:listitem=
"@layout/recycler_view_item_horizontally"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/line_size"
android:background=
"@color/colorSeparator"
/>
</LinearLayout>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/res/layout/recycler_view_policy_content.xml
0 → 100644
View file @
5d116ce2
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/activity_empty_margin"
>
<TextView
android:id=
"@+id/text_key"
android:layout_width=
"@dimen/text_key_size"
android:layout_height=
"wrap_content"
android:layout_alignParentStart=
"true"
android:layout_centerVertical=
"true"
android:gravity=
"center_vertical|start"
android:textSize=
"@dimen/font_normal_size"
tools:text=
"key"
/>
<TextView
android:id=
"@+id/text_value"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentEnd=
"true"
android:layout_centerVertical=
"true"
android:layout_marginStart=
"@dimen/median_size"
android:layout_marginEnd=
"@dimen/activity_empty_margin"
android:layout_toEndOf=
"@id/text_key"
android:gravity=
"center_vertical"
android:textSize=
"@dimen/font_normal_size"
tools:text=
"value"
/>
</RelativeLayout>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/res/layout/recycler_view_statement.xml
deleted
100644 → 0
View file @
9a0ab3b5
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<LinearLayout
android:orientation=
"vertical"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
android:text=
"@string/policy_statement_consequence_title"
android:gravity=
"center_vertical"
android:textSize=
"@dimen/font_middle_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<TextView
android:layout_marginTop=
"@dimen/small_size"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:id=
"@+id/recycler_view_statement_related_uuid"
/>
<View
android:background=
"@color/colorSeparator"
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
/>
<TextView
android:text=
"@string/policy_statement_purpose_title"
android:gravity=
"center_vertical"
android:textSize=
"@dimen/font_middle_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/recycler_view_statement_purposes"
app:layoutManager=
"android.support.v7.widget.LinearLayoutManager"
tools:listitem=
"@layout/recycler_view_item_horizontally"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<View
android:background=
"@color/colorSeparator"
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
/>
<TextView
android:text=
"@string/policy_statement_data_title"
android:gravity=
"center_vertical"
android:textSize=
"@dimen/font_middle_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/recycler_view_statement_data"
app:layoutManager=
"android.support.v7.widget.LinearLayoutManager"
tools:listitem=
"@layout/recycler_view_item_horizontally"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<View
android:background=
"@color/colorSeparator"
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
/>
<TextView
android:text=
"@string/policy_statement_remedies"
android:gravity=
"center_vertical"
android:textSize=
"@dimen/font_middle_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<TextView
tools:text=
"123"
android:gravity=
"center"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:id=
"@+id/text_statement_remedies"
/>
<View
android:background=
"@color/colorSeparator"
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
/>
<TextView
android:text=
"@string/policy_statement_recipient_title"
android:gravity=
"center_vertical"
android:textSize=
"@dimen/font_middle_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/recycler_view_statement_recipients"
app:layoutManager=
"android.support.v7.widget.LinearLayoutManager"
tools:listitem=
"@layout/recycler_view_item_horizontally"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<View
android:background=
"@color/colorSeparator"
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
/>
<TextView
android:text=
"@string/policy_statement_retention"
android:gravity=
"center_vertical"
android:textSize=
"@dimen/font_middle_size"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<TextView
android:layout_marginTop=
"@dimen/small_size"
android:gravity=
"center"
android:layout_marginStart=
"@dimen/activity_horizontal_margin"
android:layout_marginEnd=
"@dimen/activity_horizontal_margin"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:id=
"@+id/text_statement_retention"
/>
<View
android:background=
"@color/colorSeparator"
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
/>
</LinearLayout>
</ScrollView>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/res/values/colors.xml
View file @
5d116ce2
...
...
@@ -5,6 +5,7 @@
<color
name=
"colorPrimaryLight"
>
#7484ea
</color>
<color
name=
"colorAccent"
>
#FF4081
</color>
<color
name=
"colorSeparator"
>
#898989
</color>
<color
name=
"colorAnother"
>
#e5eaff
</color>
<color
name=
"colorImplicit"
>
#4c9737
</color>
<color
name=
"colorObvious"
>
#ffffff
</color>
<color
name=
"colorText"
>
#000000
</color>
...
...
This diff is collapsed.
Click to expand it.
app/src/main/res/values/dimens.xml
View file @
5d116ce2
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen
name=
"activity_empty_margin"
>
0dp
</dimen>
<dimen
name=
"activity_horizontal_margin"
>
16dp
</dimen>
<dimen
name=
"activity_vertical_margin"
>
16dp
</dimen>
<dimen
name=
"line_size"
>
1dp
</dimen>
<dimen
name=
"small_size"
>
5dp
</dimen>
<dimen
name=
"median_size"
>
8dp
</dimen>
<dimen
name=
"item_size"
>
50sp
</dimen>
<dimen
name=
"item_double_size"
>
60sp
</dimen>
<dimen
name=
"middle_item_size"
>
40sp
</dimen>
<dimen
name=
"small_item_size"
>
30sp
</dimen>
<dimen
name=
"font_bigger_size"
>
20sp
</dimen>
<dimen
name=
"font_middle_size"
>
16sp
</dimen>
...
...
This diff is collapsed.
Click to expand it.
app/src/main/res/values/strings.xml
View file @
5d116ce2
...
...
@@ -37,7 +37,7 @@
<string
name=
"bluetooth_not_bonded"
>
NOT BONDED
</string>
<string
name=
"get_policy_url"
translatable=
"false"
>
http://192.168.0.157:
4567
/policy.json
</string>
translatable=
"false"
>
http://192.168.0.157:
8080
/policy.json
</string>
<string
name=
"get_policy_id_parameter_key"
translatable=
"false"
>
id
</string>
...
...
@@ -71,15 +71,21 @@
<string
name=
"device_upc_key"
translatable=
"false"
>
UPC
</string>
<string
name=
"policy_statement_collector_title"
>
Collector
</string>
<string
name=
"policy_statement_dispute_title"
>
Dispute
</string>
<string
name=
"policy_separator"
>
 
</string>
<string
name=
"policy_collector_title"
>
Collector
</string>
<string
name=
"policy_dispute_title"
>
Dispute
</string>
<string
name=
"policy_statement_recipient_title"
>
Recipient
</string>
<string
name=
"policy_statement_purpose_title"
>
Purpose
</string>
<string
name=
"policy_statement_data_title"
>
Data
</string>
<string
name=
"policy_statement_collector_name"
>
Name
</string>
<string
name=
"policy_statement_collector_phone"
>
Phone
</string>
<string
name=
"policy_statement_collector_email"
>
Email
</string>
<string
name=
"policy_dispute_related_organization"
>
Organization
</string>
<string
name=
"policy_dispute_resolution_type"
>
Type
</string>
<string
name=
"policy_collector_name"
>
Name
</string>
<string
name=
"policy_collector_phone"
>
Phone
</string>
<string
name=
"policy_collector_email"
>
Email
</string>
<string
name=
"policy_statement_data_type"
>
Type
</string>
<string
name=
"policy_statement_data_description"
>
Description
</string>
...
...
@@ -90,11 +96,8 @@
<string
name=
"policy_statement_recipient_type"
>
Type
</string>
<string
name=
"policy_statement_recipient_description"
>
Description
</string>
<string
name=
"policy_statement_dispute_related_organization"
>
Organization
</string>
<string
name=
"policy_statement_dispute_resolution_type"
>
Type
</string>
<string
name=
"policy_statement_consequence_title"
>
Consequence
</string>
<string
name=
"policy_
statement_
access_title"
>
Access
</string>
<string
name=
"policy_access_title"
>
Access
</string>
<string
name=
"policy_statement_remedies"
>
Remedies
</string>
<string
name=
"policy_statement_title"
>
Statement
</string>
<string
name=
"policy_statement_retention"
>
Retention
</string>
...
...
This diff is collapsed.
Click to expand it.
app/src/main/res/values/styles.xml
View file @
5d116ce2
...
...
@@ -8,4 +8,6 @@
<item
name=
"colorAccent"
>
@color/colorAccent
</item>
</style>
<style
name=
"AppDialogTheme"
parent=
"Theme.AppCompat.Light.Dialog.Alert"
/>
</resources>
This diff is collapsed.
Click to expand it.
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