develop
This commit is contained in:
parent
339aa5dae5
commit
d43da8c81c
|
@ -957,17 +957,20 @@
|
|||
{
|
||||
"source": "D:\\minote\\src\\app\\src\\main\\res\\values\\strings.xml",
|
||||
"from": {
|
||||
"startLines": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startColumns": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startOffsets": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
"startLines": "132,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startColumns": "4,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startOffsets": "8447,-1,-1,-1,-1,846,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"endLines": "136,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"endColumns": "14,-1,-1,-1,-1,45,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"endOffsets": "8855,-1,-1,-1,-1,887,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
},
|
||||
"to": {
|
||||
"startLines": "339,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,482,483,485,486,487,488,489,490,491,492,493,494,495,496",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "19908,22499,22595,22678,22774,22843,22889,22941,22993,23042,23105,23182,23254,23325,23408,23468,23526,23577,23661,23755,23863,23934,24018,24101,24167,24250,24352,24413,24475,24526,24604,24657,24717,24822,24881,24983,25038,25092,25630,25679,25737,25784,25843,25900,25971,26032,26089,26139,26191,26244,26294,26344,26404,26457,26523,26585,26648,26695,26750,26838,26896,26958,27008,27053,27096,27156,27273,27328,27375,27430,27483,27530,27583,27639,27687,27742,27795,27879,27946,28010,28106,28180,28261,28350,28513,28657,28736,28811,28893,28952,29032,29112,29167,29289,29392,29435,29476,29529,29639,29713,29849,29917,30003,30083,30152,30246,30305,30360,30422,30482,30548,30658",
|
||||
"startOffsets": "19908,22539,22635,22718,22814,22883,22929,22981,23033,23082,23145,23222,23294,23365,23449,23509,23567,23618,23702,23796,23904,23975,24059,24142,24208,24291,24393,24454,24516,24567,24645,24698,24758,24863,24922,25024,25079,25133,25671,25720,25778,25825,25884,25941,26012,26073,26130,26180,26232,26285,26335,26385,26445,26498,26564,26626,26689,26736,26791,26879,26937,26999,27049,27094,27137,27197,27314,27369,27416,27471,27524,27571,27624,27680,27728,27783,27836,27920,27987,28051,28147,28221,28302,28391,28554,28698,28777,28852,28934,28993,29073,29153,29208,29330,29433,29476,29517,29570,29680,29754,29890,29958,30044,30124,30193,30287,30346,30401,30463,30523,30589,30699",
|
||||
"endLines": "343,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,482,483,485,486,487,488,489,490,491,492,493,494,495,496",
|
||||
"endColumns": "14,95,82,95,68,45,51,51,48,62,76,71,70,82,59,57,50,83,93,107,70,83,82,65,82,101,60,61,50,77,52,59,104,58,101,54,53,70,48,57,46,58,56,70,60,56,49,51,52,49,49,59,52,65,61,62,46,54,87,57,61,49,44,42,59,66,54,46,54,52,46,52,55,47,54,52,83,66,63,95,73,80,88,162,143,78,74,81,58,79,79,54,121,102,42,40,52,56,73,64,67,85,79,68,93,58,54,61,59,65,109,89",
|
||||
"endOffsets": "20256,22590,22673,22769,22838,22884,22936,22988,23037,23100,23177,23249,23320,23403,23463,23521,23572,23656,23750,23858,23929,24013,24096,24162,24245,24347,24408,24470,24521,24599,24652,24712,24817,24876,24978,25033,25087,25158,25674,25732,25779,25838,25895,25966,26027,26084,26134,26186,26239,26289,26339,26399,26452,26518,26580,26643,26690,26745,26833,26891,26953,27003,27048,27091,27151,27218,27323,27370,27425,27478,27525,27578,27634,27682,27737,27790,27874,27941,28005,28101,28175,28256,28345,28508,28652,28731,28806,28888,28947,29027,29107,29162,29284,29387,29430,29471,29524,29581,29708,29773,29912,29998,30078,30147,30241,30300,30355,30417,30477,30543,30653,30743"
|
||||
"endColumns": "14,95,82,95,68,45,51,51,48,62,76,71,70,83,59,57,50,83,93,107,70,83,82,65,82,101,60,61,50,77,52,59,104,58,101,54,53,70,48,57,46,58,56,70,60,56,49,51,52,49,49,59,52,65,61,62,46,54,87,57,61,49,44,42,59,66,54,46,54,52,46,52,55,47,54,52,83,66,63,95,73,80,88,162,143,78,74,81,58,79,79,54,121,102,42,40,52,56,73,64,67,85,79,68,93,58,54,61,59,65,109,89",
|
||||
"endOffsets": "20296,22630,22713,22809,22878,22924,22976,23028,23077,23140,23217,23289,23360,23444,23504,23562,23613,23697,23791,23899,23970,24054,24137,24203,24286,24388,24449,24511,24562,24640,24693,24753,24858,24917,25019,25074,25128,25199,25715,25773,25820,25879,25936,26007,26068,26125,26175,26227,26280,26330,26380,26440,26493,26559,26621,26684,26731,26786,26874,26932,26994,27044,27089,27132,27192,27259,27364,27411,27466,27519,27566,27619,27675,27723,27778,27831,27915,27982,28046,28142,28216,28297,28386,28549,28693,28772,28847,28929,28988,29068,29148,29203,29325,29428,29471,29512,29565,29622,29749,29814,29953,30039,30119,30188,30282,30341,30396,30458,30518,30584,30694,30784"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -980,9 +983,9 @@
|
|||
"to": {
|
||||
"startLines": "136,1833,1835,1836,1841,1843",
|
||||
"startColumns": "4,4,4,4,4,4",
|
||||
"startOffsets": "6910,117395,117571,117693,117955,118150",
|
||||
"startOffsets": "6910,117436,117612,117734,117996,118191",
|
||||
"endColumns": "88,65,121,60,65,66",
|
||||
"endOffsets": "6994,117456,117688,117749,118016,118212"
|
||||
"endOffsets": "6994,117497,117729,117790,118057,118253"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -995,9 +998,9 @@
|
|||
"to": {
|
||||
"startLines": "263,280,281,282,283,284,412,413,414,415,416,417,418,419,448",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "15665,16596,16655,16707,16757,16814,25163,25210,25261,25312,25363,25410,25459,25512,27223",
|
||||
"startOffsets": "15665,16596,16655,16707,16757,16814,25204,25251,25302,25353,25404,25451,25500,25553,27264",
|
||||
"endColumns": "57,58,51,49,56,53,46,50,50,50,46,48,52,117,49",
|
||||
"endOffsets": "15718,16650,16702,16752,16809,16863,25205,25256,25307,25358,25405,25454,25507,25625,27268"
|
||||
"endOffsets": "15718,16650,16702,16752,16809,16863,25246,25297,25348,25399,25446,25495,25548,25666,27309"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -1010,10 +1013,10 @@
|
|||
"to": {
|
||||
"startLines": "30,31,32,33,34,35,36,41,46,47,52,53,54,55,56,57,58,59,64,65,66,67,68,69,70,71,72,77,84,127,128,129,130,131,132,133,232,250,251,252,253,254,255,256,257,258,259,260,261,262,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,285,286,287,288,1546,1552,1563,1572,1583,1594",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "1030,1084,1147,1209,1272,1326,1388,1570,1749,1800,1979,2029,2074,2125,2171,2242,2297,2345,2522,2570,2625,2675,2727,2778,2830,2881,2930,3107,3519,6401,6453,6510,6563,6616,6668,6723,13518,14921,14975,15025,15088,15136,15193,15248,15299,15359,15418,15495,15552,15615,15723,15779,15832,15883,15937,15985,16031,16079,16136,16186,16241,16293,16352,16417,16473,16532,16868,16928,16988,17052,96281,96583,97259,97851,98540,99211",
|
||||
"startOffsets": "1030,1084,1147,1209,1272,1326,1388,1570,1749,1800,1979,2029,2074,2125,2171,2242,2297,2345,2522,2570,2625,2675,2727,2778,2830,2881,2930,3107,3519,6401,6453,6510,6563,6616,6668,6723,13518,14921,14975,15025,15088,15136,15193,15248,15299,15359,15418,15495,15552,15615,15723,15779,15832,15883,15937,15985,16031,16079,16136,16186,16241,16293,16352,16417,16473,16532,16868,16928,16988,17052,96322,96624,97300,97892,98581,99252",
|
||||
"endLines": "30,31,32,33,34,35,40,45,46,51,52,53,54,55,56,57,58,63,64,65,66,67,68,69,70,71,76,77,84,127,128,129,130,131,132,133,232,250,251,252,253,254,255,256,257,258,259,260,261,262,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,285,286,287,288,1551,1562,1571,1582,1593,1597",
|
||||
"endColumns": "53,62,61,62,53,61,11,11,50,11,49,44,50,45,70,54,47,11,47,54,49,51,50,51,50,48,11,49,42,51,56,52,52,51,54,54,54,53,49,62,47,56,54,50,59,58,76,56,62,49,55,52,50,53,47,45,47,56,49,54,51,58,64,55,58,63,59,59,63,48,12,12,12,12,12,12",
|
||||
"endOffsets": "1079,1142,1204,1267,1321,1383,1565,1744,1795,1974,2024,2069,2120,2166,2237,2292,2340,2517,2565,2620,2670,2722,2773,2825,2876,2925,3102,3152,3557,6448,6505,6558,6611,6663,6718,6773,13568,14970,15020,15083,15131,15188,15243,15294,15354,15413,15490,15547,15610,15660,15774,15827,15878,15932,15980,16026,16074,16131,16181,16236,16288,16347,16412,16468,16527,16591,16923,16983,17047,17096,96578,97254,97846,98535,99206,99405"
|
||||
"endOffsets": "1079,1142,1204,1267,1321,1383,1565,1744,1795,1974,2024,2069,2120,2166,2237,2292,2340,2517,2565,2620,2670,2722,2773,2825,2876,2925,3102,3152,3557,6448,6505,6558,6611,6663,6718,6773,13568,14970,15020,15083,15131,15188,15243,15294,15354,15413,15490,15547,15610,15660,15774,15827,15878,15932,15980,16026,16074,16131,16181,16236,16288,16347,16412,16468,16527,16591,16923,16983,17047,17096,96619,97295,97887,98576,99247,99446"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -1026,10 +1029,10 @@
|
|||
"to": {
|
||||
"startLines": "2010,2017,2023,2027,2033,2039,2045,2051",
|
||||
"startColumns": "4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "130528,130901,131205,131397,131676,131973,132256,132535",
|
||||
"startOffsets": "130569,130942,131246,131438,131717,132014,132297,132576",
|
||||
"endLines": "2016,2022,2026,2032,2038,2044,2050,2056",
|
||||
"endColumns": "12,12,12,12,12,12,12,12",
|
||||
"endOffsets": "130896,131200,131392,131671,131968,132251,132530,132819"
|
||||
"endOffsets": "130937,131241,131433,131712,132009,132292,132571,132860"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -1057,10 +1060,10 @@
|
|||
"to": {
|
||||
"startLines": "134,135,233,234,235,236,237,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,317,318,325,326,330,331,332,338,484,1828,1829,1834,1837,1842,2008,2009",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "6778,6847,13573,13643,13711,13783,13853,17101,17162,17223,17285,17349,17411,17472,17540,17640,17700,17766,17839,17908,17965,18017,18794,18866,19247,19282,19459,19493,19528,19838,29778,117077,117194,117461,117754,118021,130389,130461",
|
||||
"startOffsets": "6778,6847,13573,13643,13711,13783,13853,17101,17162,17223,17285,17349,17411,17472,17540,17640,17700,17766,17839,17908,17965,18017,18794,18866,19247,19282,19459,19493,19528,19838,29819,117118,117235,117502,117795,118062,130430,130502",
|
||||
"endLines": "134,135,233,234,235,236,237,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,317,318,325,326,330,331,332,338,484,1828,1832,1834,1840,1842,2008,2009",
|
||||
"endColumns": "68,62,69,67,71,69,60,60,60,61,63,61,60,67,99,59,65,72,68,56,51,61,71,75,34,34,33,34,34,69,70,116,12,109,12,128,71,66",
|
||||
"endOffsets": "6842,6905,13638,13706,13778,13848,13909,17157,17218,17280,17344,17406,17467,17535,17635,17695,17761,17834,17903,17960,18012,18074,18861,18937,19277,19312,19488,19523,19558,19903,29844,117189,117390,117566,117950,118145,130456,130523"
|
||||
"endOffsets": "6842,6905,13638,13706,13778,13848,13909,17157,17218,17280,17344,17406,17467,17535,17635,17695,17761,17834,17903,17960,18012,18074,18861,18937,19277,19312,19488,19523,19558,19903,29885,117230,117431,117607,117991,118186,130497,130564"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -1088,20 +1091,18 @@
|
|||
"to": {
|
||||
"startLines": "27,28,29,78,79,80,81,82,83,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,238,239,240,241,242,243,244,245,246,309,310,311,312,313,314,315,316,319,320,321,322,323,327,328,329,333,334,335,336,337,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,481,497,498,499,500,501,508,515,516,520,524,528,533,539,546,550,554,559,563,567,571,575,579,583,587,591,595,599,603,607,612,616,619,623,627,631,635,639,643,646,650,654,658,662,666,667,668,669,672,675,678,681,685,686,687,688,689,692,694,696,698,703,704,708,714,718,719,721,732,733,737,743,747,748,749,753,780,784,785,789,817,982,1004,1169,1191,1218,1225,1230,1244,1266,1271,1276,1286,1295,1304,1308,1315,1323,1330,1331,1340,1343,1346,1350,1354,1358,1361,1362,1366,1370,1380,1385,1392,1398,1399,1402,1406,1411,1413,1415,1418,1421,1423,1427,1430,1437,1440,1443,1447,1449,1453,1455,1461,1463,1467,1475,1483,1495,1501,1510,1513,1524,1527,1532,1533,1604,1646,1689,1690,1700,1709,1710,1712,1716,1719,1722,1725,1728,1732,1735,1738,1741,1745,1748,1752,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1781,1782,1783,1784,1785,1789,1790,1791,1792,1794,1796,1797,1798,1799,1800,1801,1802,1803,1805,1806,1808,1809,1811,1813,1814,1816,1817,1818,1819,1820,1821,1823,1824,1825,1826,1827,1844,1846,1848,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1892,1893,1894,1895,1896,1897,1899,1903,1907,1908,1909,1910,1911,1912,1913,1914,1916,1918,1920,1922,1924,1925,1926,1927,1929,1931,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1947,1948,1949,1950,1952,1954,1955,1957,1958,1960,1962,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1977,1978,1979,1980,1982,1983,1984,1985,1986,1988,1990,1992,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "881,936,981,3157,3198,3253,3311,3373,3441,3562,3643,3704,3779,3855,3932,4010,4095,4177,4253,4329,4406,4484,4590,4696,4775,4855,4912,5114,5188,5263,5328,5394,5449,5521,5594,5661,5729,5788,5847,5906,5965,6024,6078,6132,6185,6239,6293,6347,6999,7073,7152,7225,7299,7370,7442,7514,7587,7644,7702,7775,7849,7923,7998,8070,8143,8213,8284,8344,8462,8531,8600,8670,8744,8820,8884,8961,9037,9114,9178,9243,9312,9389,9464,9533,9601,9678,9744,9841,9906,9975,10074,10145,10204,10262,10319,10378,10449,10521,10593,10665,10737,10804,10872,10940,10999,11062,11126,11216,11307,11367,11433,11500,11566,11636,11700,11753,11866,11924,11987,12052,12117,12192,12265,12337,12386,12447,12508,12569,12631,12695,12759,12823,12888,12951,13011,13072,13138,13197,13257,13319,13390,13450,13914,14000,14087,14177,14264,14352,14434,14517,14607,18341,18393,18451,18496,18562,18626,18683,18740,18942,18999,19047,19096,19147,19317,19364,19413,19563,19595,19659,19721,19781,20261,20335,20413,20506,20576,20654,20708,20778,20863,20911,20957,21028,21106,21184,21256,21330,21404,21478,21558,21631,21700,21772,21849,21901,21974,22048,22117,22192,22266,22340,22429,29586,30748,30826,30916,31004,31100,31474,31975,32064,32311,32592,32836,33121,33514,33991,34213,34435,34703,34930,35160,35390,35620,35850,36077,36316,36542,36787,37017,37265,37484,37767,37975,38106,38333,38579,38804,39051,39272,39517,39637,39913,40214,40538,40829,41143,41280,41411,41516,41758,41925,42129,42337,42608,42720,42832,42937,43054,43268,43414,43554,43640,43988,44076,44306,44724,44957,45039,45137,45729,45829,46065,46489,46728,46822,46911,47148,49172,49414,49516,49753,51909,61854,63105,73147,74410,75902,76438,76768,77829,79094,79350,79586,80133,80627,81232,81430,82010,82574,82949,83067,83605,83762,83958,84231,84487,84657,84798,84862,85144,85430,86106,86370,86708,87061,87155,87341,87647,87909,88034,88161,88400,88611,88730,88923,89100,89555,89736,89858,90117,90230,90417,90519,90963,91087,91362,91870,92366,93243,93537,94107,94256,94988,95160,95496,95588,99729,102853,106120,106182,106760,107344,107430,107543,107772,107932,108084,108255,108422,108665,108835,109008,109179,109453,109652,109857,110187,110271,110367,110463,110561,110661,110763,110865,110967,111069,111171,111271,111367,111479,111608,111731,111862,111993,112091,112205,112299,112419,112623,112692,112808,112936,113000,113204,113273,113405,113475,113615,113749,113845,113957,114057,114173,114269,114381,114481,114621,114757,114921,115051,115209,115359,115500,115644,115779,115891,116041,116169,116297,116433,116565,116695,116825,116937,118217,118363,118507,119991,120057,120147,120223,120327,120417,120519,120627,120735,120835,120915,121007,121105,121215,121293,121399,121491,121595,121705,121827,121990,122147,122227,122327,122417,122527,122621,122727,122819,122919,123031,123145,123261,123377,123471,123585,123697,123799,123919,124041,124123,124227,124347,124473,124571,124665,124753,124865,124981,125103,125215,125390,125506,125592,125684,125796,125920,125987,126113,126181,126309,126453,126581,126650,126745,126860,126973,127072,127181,127292,127403,127504,127609,127709,127839,127930,128053,128147,128259,128345,128449,128545,128633,128751,128855,128959,129085,129173,129281,129381,129471,129581,129665,129767,129851,129905,129969,130075,130185,130269",
|
||||
"startOffsets": "881,936,981,3157,3198,3253,3311,3373,3441,3562,3643,3704,3779,3855,3932,4010,4095,4177,4253,4329,4406,4484,4590,4696,4775,4855,4912,5114,5188,5263,5328,5394,5449,5521,5594,5661,5729,5788,5847,5906,5965,6024,6078,6132,6185,6239,6293,6347,6999,7073,7152,7225,7299,7370,7442,7514,7587,7644,7702,7775,7849,7923,7998,8070,8143,8213,8284,8344,8462,8531,8600,8670,8744,8820,8884,8961,9037,9114,9178,9243,9312,9389,9464,9533,9601,9678,9744,9841,9906,9975,10074,10145,10204,10262,10319,10378,10449,10521,10593,10665,10737,10804,10872,10940,10999,11062,11126,11216,11307,11367,11433,11500,11566,11636,11700,11753,11866,11924,11987,12052,12117,12192,12265,12337,12386,12447,12508,12569,12631,12695,12759,12823,12888,12951,13011,13072,13138,13197,13257,13319,13390,13450,13914,14000,14087,14177,14264,14352,14434,14517,14607,18341,18393,18451,18496,18562,18626,18683,18740,18942,18999,19047,19096,19147,19317,19364,19413,19563,19595,19659,19721,19781,20301,20375,20453,20546,20616,20694,20748,20818,20903,20951,20997,21068,21146,21224,21296,21370,21444,21518,21598,21671,21740,21812,21889,21941,22014,22088,22157,22232,22306,22380,22469,29627,30789,30867,30957,31045,31141,31515,32016,32105,32352,32633,32877,33162,33555,34032,34254,34476,34744,34971,35201,35431,35661,35891,36118,36357,36583,36828,37058,37306,37525,37808,38016,38147,38374,38620,38845,39092,39313,39558,39678,39954,40255,40579,40870,41184,41321,41452,41557,41799,41966,42170,42378,42649,42761,42873,42978,43095,43309,43455,43595,43681,44029,44117,44347,44765,44998,45080,45178,45770,45870,46106,46530,46769,46863,46952,47189,49213,49455,49557,49794,51950,61895,63146,73188,74451,75943,76479,76809,77870,79135,79391,79627,80174,80668,81273,81471,82051,82615,82990,83108,83646,83803,83999,84272,84528,84698,84839,84903,85185,85471,86147,86411,86749,87102,87196,87382,87688,87950,88075,88202,88441,88652,88771,88964,89141,89596,89777,89899,90158,90271,90458,90560,91004,91128,91403,91911,92407,93284,93578,94148,94297,95029,95201,95537,95629,99770,102894,106161,106223,106801,107385,107471,107584,107813,107973,108125,108296,108463,108706,108876,109049,109220,109494,109693,109898,110228,110312,110408,110504,110602,110702,110804,110906,111008,111110,111212,111312,111408,111520,111649,111772,111903,112034,112132,112246,112340,112460,112664,112733,112849,112977,113041,113245,113314,113446,113516,113656,113790,113886,113998,114098,114214,114310,114422,114522,114662,114798,114962,115092,115250,115400,115541,115685,115820,115932,116082,116210,116338,116474,116606,116736,116866,116978,118258,118404,118548,120032,120098,120188,120264,120368,120458,120560,120668,120776,120876,120956,121048,121146,121256,121334,121440,121532,121636,121746,121868,122031,122188,122268,122368,122458,122568,122662,122768,122860,122960,123072,123186,123302,123418,123512,123626,123738,123840,123960,124082,124164,124268,124388,124514,124612,124706,124794,124906,125022,125144,125256,125431,125547,125633,125725,125837,125961,126028,126154,126222,126350,126494,126622,126691,126786,126901,127014,127113,127222,127333,127444,127545,127650,127750,127880,127971,128094,128188,128300,128386,128490,128586,128674,128792,128896,129000,129126,129214,129322,129422,129512,129622,129706,129808,129892,129946,130010,130116,130226,130310",
|
||||
"endLines": "27,28,29,78,79,80,81,82,83,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,238,239,240,241,242,243,244,245,246,309,310,311,312,313,314,315,316,319,320,321,322,323,327,328,329,333,334,335,336,337,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,481,497,498,499,500,501,514,515,519,523,527,532,538,545,549,553,558,562,566,570,574,578,582,586,590,594,598,602,606,611,615,618,622,626,630,634,638,642,645,649,653,657,661,665,666,667,668,671,674,677,680,684,685,686,687,688,691,693,695,697,702,703,707,713,717,718,720,731,732,736,742,746,747,748,752,779,783,784,788,816,981,1003,1168,1190,1217,1224,1229,1243,1265,1270,1275,1285,1294,1303,1307,1314,1322,1329,1330,1339,1342,1345,1349,1353,1357,1360,1361,1365,1369,1379,1384,1391,1397,1398,1401,1405,1410,1412,1414,1417,1420,1422,1426,1429,1436,1439,1442,1446,1448,1452,1454,1460,1462,1466,1474,1482,1494,1500,1509,1512,1523,1526,1531,1532,1537,1645,1688,1689,1699,1708,1709,1711,1715,1718,1721,1724,1727,1731,1734,1737,1740,1744,1747,1751,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1780,1781,1782,1783,1784,1788,1789,1790,1791,1793,1795,1796,1797,1798,1799,1800,1801,1802,1804,1805,1807,1808,1810,1812,1813,1815,1816,1817,1818,1819,1820,1822,1823,1824,1825,1826,1827,1845,1847,1849,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1891,1892,1893,1894,1895,1896,1898,1902,1906,1907,1908,1909,1910,1911,1912,1913,1915,1917,1919,1921,1923,1924,1925,1926,1928,1930,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1946,1947,1948,1949,1951,1953,1954,1956,1957,1959,1961,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1976,1977,1978,1979,1981,1982,1983,1984,1985,1987,1989,1991,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007",
|
||||
"endColumns": "54,44,48,40,54,57,61,67,77,80,60,74,75,76,77,84,81,75,75,76,77,105,105,78,79,56,57,73,74,64,65,54,71,72,66,67,58,58,58,58,58,53,53,52,53,53,53,53,73,78,72,73,70,71,71,72,56,57,72,73,73,74,71,72,69,70,59,60,68,68,69,73,75,63,76,75,76,63,64,68,76,74,68,67,76,65,96,64,68,98,70,58,57,56,58,70,71,71,71,71,66,67,67,58,62,63,89,90,59,65,66,65,69,63,52,112,57,62,64,64,74,72,71,48,60,60,60,61,63,63,63,64,62,59,60,65,58,59,61,70,59,67,85,86,89,86,87,81,82,89,90,51,57,44,65,63,56,56,53,56,47,48,50,33,46,48,45,31,63,61,59,56,73,77,92,69,77,53,69,84,47,45,70,77,77,71,73,73,73,79,72,68,71,76,51,72,73,68,74,73,73,88,69,52,77,89,87,95,89,12,88,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,136,130,104,12,12,12,12,12,111,111,104,116,12,12,12,12,12,87,12,12,12,81,12,12,99,12,12,12,93,88,12,12,12,101,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,117,12,12,12,12,12,12,12,63,12,12,12,12,12,12,93,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,91,12,12,12,61,12,12,85,12,12,12,12,12,12,12,12,12,12,12,12,12,12,83,95,95,97,99,101,101,101,101,101,99,95,111,128,122,130,130,97,113,93,119,12,68,115,127,63,12,68,131,69,12,12,95,111,99,115,95,111,99,12,135,12,129,12,12,140,12,134,111,149,127,127,12,131,129,129,111,139,12,12,12,65,89,75,103,89,101,107,107,99,79,91,97,12,77,105,91,103,109,12,12,12,79,99,89,109,93,105,91,12,12,12,12,12,93,113,111,12,12,12,81,103,119,125,97,93,87,111,115,121,111,12,115,85,91,12,12,66,12,67,12,12,12,68,94,114,112,98,108,110,110,100,104,99,12,90,122,93,12,85,103,95,87,12,12,12,12,87,107,99,89,109,83,101,83,53,63,105,109,83,119",
|
||||
"endOffsets": "931,976,1025,3193,3248,3306,3368,3436,3514,3638,3699,3774,3850,3927,4005,4090,4172,4248,4324,4401,4479,4585,4691,4770,4850,4907,4965,5183,5258,5323,5389,5444,5516,5589,5656,5724,5783,5842,5901,5960,6019,6073,6127,6180,6234,6288,6342,6396,7068,7147,7220,7294,7365,7437,7509,7582,7639,7697,7770,7844,7918,7993,8065,8138,8208,8279,8339,8400,8526,8595,8665,8739,8815,8879,8956,9032,9109,9173,9238,9307,9384,9459,9528,9596,9673,9739,9836,9901,9970,10069,10140,10199,10257,10314,10373,10444,10516,10588,10660,10732,10799,10867,10935,10994,11057,11121,11211,11302,11362,11428,11495,11561,11631,11695,11748,11861,11919,11982,12047,12112,12187,12260,12332,12381,12442,12503,12564,12626,12690,12754,12818,12883,12946,13006,13067,13133,13192,13252,13314,13385,13445,13513,13995,14082,14172,14259,14347,14429,14512,14602,14693,18388,18446,18491,18557,18621,18678,18735,18789,18994,19042,19091,19142,19176,19359,19408,19454,19590,19654,19716,19776,19833,20330,20408,20501,20571,20649,20703,20773,20858,20906,20952,21023,21101,21179,21251,21325,21399,21473,21553,21626,21695,21767,21844,21896,21969,22043,22112,22187,22261,22335,22424,22494,29634,30821,30911,30999,31095,31185,31970,32059,32306,32587,32831,33116,33509,33986,34208,34430,34698,34925,35155,35385,35615,35845,36072,36311,36537,36782,37012,37260,37479,37762,37970,38101,38328,38574,38799,39046,39267,39512,39632,39908,40209,40533,40824,41138,41275,41406,41511,41753,41920,42124,42332,42603,42715,42827,42932,43049,43263,43409,43549,43635,43983,44071,44301,44719,44952,45034,45132,45724,45824,46060,46484,46723,46817,46906,47143,49167,49409,49511,49748,51904,61849,63100,73142,74405,75897,76433,76763,77824,79089,79345,79581,80128,80622,81227,81425,82005,82569,82944,83062,83600,83757,83953,84226,84482,84652,84793,84857,85139,85425,86101,86365,86703,87056,87150,87336,87642,87904,88029,88156,88395,88606,88725,88918,89095,89550,89731,89853,90112,90225,90412,90514,90958,91082,91357,91865,92361,93238,93532,94102,94251,94983,95155,95491,95583,95861,102848,106115,106177,106755,107339,107425,107538,107767,107927,108079,108250,108417,108660,108830,109003,109174,109448,109647,109852,110182,110266,110362,110458,110556,110656,110758,110860,110962,111064,111166,111266,111362,111474,111603,111726,111857,111988,112086,112200,112294,112414,112618,112687,112803,112931,112995,113199,113268,113400,113470,113610,113744,113840,113952,114052,114168,114264,114376,114476,114616,114752,114916,115046,115204,115354,115495,115639,115774,115886,116036,116164,116292,116428,116560,116690,116820,116932,117072,118358,118502,118640,120052,120142,120218,120322,120412,120514,120622,120730,120830,120910,121002,121100,121210,121288,121394,121486,121590,121700,121822,121985,122142,122222,122322,122412,122522,122616,122722,122814,122914,123026,123140,123256,123372,123466,123580,123692,123794,123914,124036,124118,124222,124342,124468,124566,124660,124748,124860,124976,125098,125210,125385,125501,125587,125679,125791,125915,125982,126108,126176,126304,126448,126576,126645,126740,126855,126968,127067,127176,127287,127398,127499,127604,127704,127834,127925,128048,128142,128254,128340,128444,128540,128628,128746,128850,128954,129080,129168,129276,129376,129466,129576,129660,129762,129846,129900,129964,130070,130180,130264,130384"
|
||||
"endOffsets": "931,976,1025,3193,3248,3306,3368,3436,3514,3638,3699,3774,3850,3927,4005,4090,4172,4248,4324,4401,4479,4585,4691,4770,4850,4907,4965,5183,5258,5323,5389,5444,5516,5589,5656,5724,5783,5842,5901,5960,6019,6073,6127,6180,6234,6288,6342,6396,7068,7147,7220,7294,7365,7437,7509,7582,7639,7697,7770,7844,7918,7993,8065,8138,8208,8279,8339,8400,8526,8595,8665,8739,8815,8879,8956,9032,9109,9173,9238,9307,9384,9459,9528,9596,9673,9739,9836,9901,9970,10069,10140,10199,10257,10314,10373,10444,10516,10588,10660,10732,10799,10867,10935,10994,11057,11121,11211,11302,11362,11428,11495,11561,11631,11695,11748,11861,11919,11982,12047,12112,12187,12260,12332,12381,12442,12503,12564,12626,12690,12754,12818,12883,12946,13006,13067,13133,13192,13252,13314,13385,13445,13513,13995,14082,14172,14259,14347,14429,14512,14602,14693,18388,18446,18491,18557,18621,18678,18735,18789,18994,19042,19091,19142,19176,19359,19408,19454,19590,19654,19716,19776,19833,20370,20448,20541,20611,20689,20743,20813,20898,20946,20992,21063,21141,21219,21291,21365,21439,21513,21593,21666,21735,21807,21884,21936,22009,22083,22152,22227,22301,22375,22464,22534,29675,30862,30952,31040,31136,31226,32011,32100,32347,32628,32872,33157,33550,34027,34249,34471,34739,34966,35196,35426,35656,35886,36113,36352,36578,36823,37053,37301,37520,37803,38011,38142,38369,38615,38840,39087,39308,39553,39673,39949,40250,40574,40865,41179,41316,41447,41552,41794,41961,42165,42373,42644,42756,42868,42973,43090,43304,43450,43590,43676,44024,44112,44342,44760,44993,45075,45173,45765,45865,46101,46525,46764,46858,46947,47184,49208,49450,49552,49789,51945,61890,63141,73183,74446,75938,76474,76804,77865,79130,79386,79622,80169,80663,81268,81466,82046,82610,82985,83103,83641,83798,83994,84267,84523,84693,84834,84898,85180,85466,86142,86406,86744,87097,87191,87377,87683,87945,88070,88197,88436,88647,88766,88959,89136,89591,89772,89894,90153,90266,90453,90555,90999,91123,91398,91906,92402,93279,93573,94143,94292,95024,95196,95532,95624,95902,102889,106156,106218,106796,107380,107466,107579,107808,107968,108120,108291,108458,108701,108871,109044,109215,109489,109688,109893,110223,110307,110403,110499,110597,110697,110799,110901,111003,111105,111207,111307,111403,111515,111644,111767,111898,112029,112127,112241,112335,112455,112659,112728,112844,112972,113036,113240,113309,113441,113511,113651,113785,113881,113993,114093,114209,114305,114417,114517,114657,114793,114957,115087,115245,115395,115536,115680,115815,115927,116077,116205,116333,116469,116601,116731,116861,116973,117113,118399,118543,118681,120093,120183,120259,120363,120453,120555,120663,120771,120871,120951,121043,121141,121251,121329,121435,121527,121631,121741,121863,122026,122183,122263,122363,122453,122563,122657,122763,122855,122955,123067,123181,123297,123413,123507,123621,123733,123835,123955,124077,124159,124263,124383,124509,124607,124701,124789,124901,125017,125139,125251,125426,125542,125628,125720,125832,125956,126023,126149,126217,126345,126489,126617,126686,126781,126896,127009,127108,127217,127328,127439,127540,127645,127745,127875,127966,128089,128183,128295,128381,128485,128581,128669,128787,128891,128995,129121,129209,129317,129417,129507,129617,129701,129803,129887,129941,130005,130111,130221,130305,130425"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "D:\\minote\\src\\app\\src\\main\\res\\values\\colors.xml",
|
||||
"from": {
|
||||
"startLines": "-1,19,20,-1",
|
||||
"startColumns": "-1,4,4,-1",
|
||||
"startOffsets": "-1,788,836,-1",
|
||||
"endColumns": "-1,46,50,-1",
|
||||
"endOffsets": "-1,830,882,-1"
|
||||
"startLines": "-1,-1,-1,-1",
|
||||
"startColumns": "-1,-1,-1,-1",
|
||||
"startOffsets": "-1,-1,-1,-1"
|
||||
},
|
||||
"to": {
|
||||
"startLines": "103,104,105,157",
|
||||
|
@ -1121,10 +1122,10 @@
|
|||
"to": {
|
||||
"startLines": "502,1538,1542,1598,1601,1850,1854,1858,1862,1866,1870,1874",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "31190,95866,96070,99410,99569,118645,118828,119013,119198,119401,119607,119790",
|
||||
"startOffsets": "31231,95907,96111,99451,99610,118686,118869,119054,119239,119442,119648,119831",
|
||||
"endLines": "507,1541,1545,1600,1603,1853,1857,1861,1865,1869,1873,1877",
|
||||
"endColumns": "12,12,12,12,12,12,12,12,12,12,12,12",
|
||||
"endOffsets": "31469,96065,96276,99564,99724,118823,119008,119193,119396,119602,119785,119986"
|
||||
"endOffsets": "31510,96106,96317,99605,99765,118864,119049,119234,119437,119643,119826,120027"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -1889,12 +1890,11 @@
|
|||
{
|
||||
"source": "D:\\minote\\src\\app\\src\\main\\res\\values-zh-rCN\\strings.xml",
|
||||
"from": {
|
||||
"startLines": "122,72,71,70,69,19,20,21,113,114,125,121,120,26,78,79,77,76,75,91,90,89,81,61,29,30,82,73,115,126,68,64,39,45,50,40,60,59,58,54,53,51,52,55,56,46,67,57,65,44,49,48,47,63,43,62,41,42,66,28,38,34,36,33,35,32,31,25,24,98,97,100,112,105,104,106,107,109,108,99,103,101,102,96,110,111,128,119,117,116,118,27,80,88,93,92,94,87,86,85,84,127,22,23",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "6699,3612,3545,3471,3420,846,889,938,6241,6287,6879,6644,6593,1227,3984,4053,3924,3858,3794,4728,4667,4603,4187,2983,1400,1454,4242,3686,6345,6929,3360,3143,1882,2169,2420,1936,2922,2868,2816,2617,2568,2472,2521,2664,2712,2213,3300,2763,3187,2125,2372,2315,2259,3087,2080,3044,1987,2029,3240,1348,1838,1659,1757,1611,1709,1563,1517,1175,1121,5110,5050,5253,6166,5569,5499,5634,5713,5898,5824,5186,5443,5311,5377,5000,6003,6087,7036,6554,6445,6396,6491,1290,4131,4543,4843,4784,4911,4494,4448,4399,4347,6981,987,1054",
|
||||
"endLines": "124,72,71,70,69,19,20,21,113,114,125,121,120,26,78,79,77,76,75,91,90,89,81,61,29,30,82,73,115,126,68,64,39,45,50,40,60,59,58,54,53,51,52,55,56,46,67,57,65,44,49,48,47,63,43,62,41,42,66,28,38,34,36,33,35,32,31,25,24,98,97,100,112,105,104,106,107,109,108,99,103,101,102,96,110,111,128,119,117,116,118,27,80,88,93,92,94,87,86,85,84,127,22,23",
|
||||
"endColumns": "14,72,65,72,49,41,47,47,44,56,48,53,49,61,67,76,58,64,62,54,59,62,53,59,52,61,84,80,49,50,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,42,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,40,37,44,47,61,56,54,58,66,57,61,47,44,47,50,53,65,65",
|
||||
"endOffsets": "6873,3680,3606,3539,3465,883,932,981,6281,6339,6923,6693,6638,1284,4047,4125,3978,3918,3852,4778,4722,4661,4236,3038,1448,1511,4322,3762,6390,6975,3414,3181,1930,2207,2466,1981,2977,2916,2862,2658,2611,2515,2562,2706,2757,2253,3354,2810,3234,2163,2414,2366,2309,3137,2119,3081,2023,2074,3294,1394,1876,1703,1801,1653,1751,1605,1557,1221,1169,5180,5104,5305,6235,5628,5563,5707,5818,5997,5892,5247,5493,5371,5437,5044,6081,6160,7072,6587,6485,6439,6548,1342,4181,4597,4905,4837,4968,4537,4488,4442,4393,7030,1048,1115"
|
||||
"startLines": "-1,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startColumns": "-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startOffsets": "-1,-1,-1,-1,-1,846,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"endColumns": "-1,-1,-1,-1,-1,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"endOffsets": "-1,-1,-1,-1,-1,883,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
},
|
||||
"to": {
|
||||
"startLines": "21,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,133,134,136,137,138,139,140,141,142,143,144,145,146,147",
|
||||
|
@ -1908,11 +1908,9 @@
|
|||
{
|
||||
"source": "C:\\Users\\dsj6789\\.gradle\\caches\\transforms-2\\files-2.1\\c6eab15e29e7689fa75201e757862466\\appcompat-v7-26.1.0\\res\\values-zh-rCN\\values-zh-rCN.xml",
|
||||
"from": {
|
||||
"startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "55,151,258,381,476,576,658,755,861,937,1013,1091,1187,1283,1378,1475,1570,1668,1780,1874,1952",
|
||||
"endColumns": "95,106,122,94,99,81,96,105,75,75,77,95,95,94,96,94,97,111,93,77,100",
|
||||
"endOffsets": "146,253,376,471,571,653,750,856,932,1008,1086,1182,1278,1373,1470,1565,1663,1775,1869,1947,2048"
|
||||
"startLines": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startColumns": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startOffsets": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
},
|
||||
"to": {
|
||||
"startLines": "24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,132,135",
|
||||
|
@ -1925,12 +1923,9 @@
|
|||
{
|
||||
"source": "D:\\minote\\src\\app\\src\\main\\res\\values-zh-rCN\\arrays.xml",
|
||||
"from": {
|
||||
"startLines": "18,23,32",
|
||||
"startColumns": "4,4,4",
|
||||
"startOffsets": "730,846,1055",
|
||||
"endLines": "21,30,38",
|
||||
"endColumns": "19,19,19",
|
||||
"endOffsets": "838,1047,1228"
|
||||
"startLines": "-1,-1,-1",
|
||||
"startColumns": "-1,-1,-1",
|
||||
"startOffsets": "-1,-1,-1"
|
||||
},
|
||||
"to": {
|
||||
"startLines": "2,6,14",
|
||||
|
|
|
@ -6,12 +6,11 @@
|
|||
{
|
||||
"source": "D:\\minote\\src\\app\\src\\main\\res\\values-zh-rCN\\strings.xml",
|
||||
"from": {
|
||||
"startLines": "122,72,71,70,69,19,20,21,113,114,125,121,120,26,78,79,77,76,75,91,90,89,81,61,29,30,82,73,115,126,68,64,39,45,50,40,60,59,58,54,53,51,52,55,56,46,67,57,65,44,49,48,47,63,43,62,41,42,66,28,38,34,36,33,35,32,31,25,24,98,97,100,112,105,104,106,107,109,108,99,103,101,102,96,110,111,128,119,117,116,118,27,80,88,93,92,94,87,86,85,84,127,22,23",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "6699,3612,3545,3471,3420,846,889,938,6241,6287,6879,6644,6593,1227,3984,4053,3924,3858,3794,4728,4667,4603,4187,2983,1400,1454,4242,3686,6345,6929,3360,3143,1882,2169,2420,1936,2922,2868,2816,2617,2568,2472,2521,2664,2712,2213,3300,2763,3187,2125,2372,2315,2259,3087,2080,3044,1987,2029,3240,1348,1838,1659,1757,1611,1709,1563,1517,1175,1121,5110,5050,5253,6166,5569,5499,5634,5713,5898,5824,5186,5443,5311,5377,5000,6003,6087,7036,6554,6445,6396,6491,1290,4131,4543,4843,4784,4911,4494,4448,4399,4347,6981,987,1054",
|
||||
"endLines": "124,72,71,70,69,19,20,21,113,114,125,121,120,26,78,79,77,76,75,91,90,89,81,61,29,30,82,73,115,126,68,64,39,45,50,40,60,59,58,54,53,51,52,55,56,46,67,57,65,44,49,48,47,63,43,62,41,42,66,28,38,34,36,33,35,32,31,25,24,98,97,100,112,105,104,106,107,109,108,99,103,101,102,96,110,111,128,119,117,116,118,27,80,88,93,92,94,87,86,85,84,127,22,23",
|
||||
"endColumns": "14,72,65,72,49,41,47,47,44,56,48,53,49,61,67,76,58,64,62,54,59,62,53,59,52,61,84,80,49,50,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,42,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,40,37,44,47,61,56,54,58,66,57,61,47,44,47,50,53,65,65",
|
||||
"endOffsets": "6873,3680,3606,3539,3465,883,932,981,6281,6339,6923,6693,6638,1284,4047,4125,3978,3918,3852,4778,4722,4661,4236,3038,1448,1511,4322,3762,6390,6975,3414,3181,1930,2207,2466,1981,2977,2916,2862,2658,2611,2515,2562,2706,2757,2253,3354,2810,3234,2163,2414,2366,2309,3137,2119,3081,2023,2074,3294,1394,1876,1703,1801,1653,1751,1605,1557,1221,1169,5180,5104,5305,6235,5628,5563,5707,5818,5997,5892,5247,5493,5371,5437,5044,6081,6160,7072,6587,6485,6439,6548,1342,4181,4597,4905,4837,4968,4537,4488,4442,4393,7030,1048,1115"
|
||||
"startLines": "-1,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startColumns": "-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startOffsets": "-1,-1,-1,-1,-1,846,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"endColumns": "-1,-1,-1,-1,-1,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"endOffsets": "-1,-1,-1,-1,-1,883,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
},
|
||||
"to": {
|
||||
"startLines": "21,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,133,134,136,137,138,139,140,141,142,143,144,145,146,147",
|
||||
|
@ -25,11 +24,9 @@
|
|||
{
|
||||
"source": "C:\\Users\\dsj6789\\.gradle\\caches\\transforms-2\\files-2.1\\c6eab15e29e7689fa75201e757862466\\appcompat-v7-26.1.0\\res\\values-zh-rCN\\values-zh-rCN.xml",
|
||||
"from": {
|
||||
"startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "55,151,258,381,476,576,658,755,861,937,1013,1091,1187,1283,1378,1475,1570,1668,1780,1874,1952",
|
||||
"endColumns": "95,106,122,94,99,81,96,105,75,75,77,95,95,94,96,94,97,111,93,77,100",
|
||||
"endOffsets": "146,253,376,471,571,653,750,856,932,1008,1086,1182,1278,1373,1470,1565,1663,1775,1869,1947,2048"
|
||||
"startLines": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startColumns": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startOffsets": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
},
|
||||
"to": {
|
||||
"startLines": "24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,132,135",
|
||||
|
@ -42,12 +39,9 @@
|
|||
{
|
||||
"source": "D:\\minote\\src\\app\\src\\main\\res\\values-zh-rCN\\arrays.xml",
|
||||
"from": {
|
||||
"startLines": "18,23,32",
|
||||
"startColumns": "4,4,4",
|
||||
"startOffsets": "730,846,1055",
|
||||
"endLines": "21,30,38",
|
||||
"endColumns": "19,19,19",
|
||||
"endOffsets": "838,1047,1228"
|
||||
"startLines": "-1,-1,-1",
|
||||
"startColumns": "-1,-1,-1",
|
||||
"startOffsets": "-1,-1,-1"
|
||||
},
|
||||
"to": {
|
||||
"startLines": "2,6,14",
|
||||
|
|
|
@ -6,17 +6,20 @@
|
|||
{
|
||||
"source": "D:\\minote\\src\\app\\src\\main\\res\\values\\strings.xml",
|
||||
"from": {
|
||||
"startLines": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startColumns": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startOffsets": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
"startLines": "132,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startColumns": "4,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"startOffsets": "8447,-1,-1,-1,-1,846,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"endLines": "136,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"endColumns": "14,-1,-1,-1,-1,45,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
|
||||
"endOffsets": "8855,-1,-1,-1,-1,887,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||
},
|
||||
"to": {
|
||||
"startLines": "339,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,482,483,485,486,487,488,489,490,491,492,493,494,495,496",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "19908,22499,22595,22678,22774,22843,22889,22941,22993,23042,23105,23182,23254,23325,23408,23468,23526,23577,23661,23755,23863,23934,24018,24101,24167,24250,24352,24413,24475,24526,24604,24657,24717,24822,24881,24983,25038,25092,25630,25679,25737,25784,25843,25900,25971,26032,26089,26139,26191,26244,26294,26344,26404,26457,26523,26585,26648,26695,26750,26838,26896,26958,27008,27053,27096,27156,27273,27328,27375,27430,27483,27530,27583,27639,27687,27742,27795,27879,27946,28010,28106,28180,28261,28350,28513,28657,28736,28811,28893,28952,29032,29112,29167,29289,29392,29435,29476,29529,29639,29713,29849,29917,30003,30083,30152,30246,30305,30360,30422,30482,30548,30658",
|
||||
"startOffsets": "19908,22539,22635,22718,22814,22883,22929,22981,23033,23082,23145,23222,23294,23365,23449,23509,23567,23618,23702,23796,23904,23975,24059,24142,24208,24291,24393,24454,24516,24567,24645,24698,24758,24863,24922,25024,25079,25133,25671,25720,25778,25825,25884,25941,26012,26073,26130,26180,26232,26285,26335,26385,26445,26498,26564,26626,26689,26736,26791,26879,26937,26999,27049,27094,27137,27197,27314,27369,27416,27471,27524,27571,27624,27680,27728,27783,27836,27920,27987,28051,28147,28221,28302,28391,28554,28698,28777,28852,28934,28993,29073,29153,29208,29330,29433,29476,29517,29570,29680,29754,29890,29958,30044,30124,30193,30287,30346,30401,30463,30523,30589,30699",
|
||||
"endLines": "343,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,482,483,485,486,487,488,489,490,491,492,493,494,495,496",
|
||||
"endColumns": "14,95,82,95,68,45,51,51,48,62,76,71,70,82,59,57,50,83,93,107,70,83,82,65,82,101,60,61,50,77,52,59,104,58,101,54,53,70,48,57,46,58,56,70,60,56,49,51,52,49,49,59,52,65,61,62,46,54,87,57,61,49,44,42,59,66,54,46,54,52,46,52,55,47,54,52,83,66,63,95,73,80,88,162,143,78,74,81,58,79,79,54,121,102,42,40,52,56,73,64,67,85,79,68,93,58,54,61,59,65,109,89",
|
||||
"endOffsets": "20256,22590,22673,22769,22838,22884,22936,22988,23037,23100,23177,23249,23320,23403,23463,23521,23572,23656,23750,23858,23929,24013,24096,24162,24245,24347,24408,24470,24521,24599,24652,24712,24817,24876,24978,25033,25087,25158,25674,25732,25779,25838,25895,25966,26027,26084,26134,26186,26239,26289,26339,26399,26452,26518,26580,26643,26690,26745,26833,26891,26953,27003,27048,27091,27151,27218,27323,27370,27425,27478,27525,27578,27634,27682,27737,27790,27874,27941,28005,28101,28175,28256,28345,28508,28652,28731,28806,28888,28947,29027,29107,29162,29284,29387,29430,29471,29524,29581,29708,29773,29912,29998,30078,30147,30241,30300,30355,30417,30477,30543,30653,30743"
|
||||
"endColumns": "14,95,82,95,68,45,51,51,48,62,76,71,70,83,59,57,50,83,93,107,70,83,82,65,82,101,60,61,50,77,52,59,104,58,101,54,53,70,48,57,46,58,56,70,60,56,49,51,52,49,49,59,52,65,61,62,46,54,87,57,61,49,44,42,59,66,54,46,54,52,46,52,55,47,54,52,83,66,63,95,73,80,88,162,143,78,74,81,58,79,79,54,121,102,42,40,52,56,73,64,67,85,79,68,93,58,54,61,59,65,109,89",
|
||||
"endOffsets": "20296,22630,22713,22809,22878,22924,22976,23028,23077,23140,23217,23289,23360,23444,23504,23562,23613,23697,23791,23899,23970,24054,24137,24203,24286,24388,24449,24511,24562,24640,24693,24753,24858,24917,25019,25074,25128,25199,25715,25773,25820,25879,25936,26007,26068,26125,26175,26227,26280,26330,26380,26440,26493,26559,26621,26684,26731,26786,26874,26932,26994,27044,27089,27132,27192,27259,27364,27411,27466,27519,27566,27619,27675,27723,27778,27831,27915,27982,28046,28142,28216,28297,28386,28549,28693,28772,28847,28929,28988,29068,29148,29203,29325,29428,29471,29512,29565,29622,29749,29814,29953,30039,30119,30188,30282,30341,30396,30458,30518,30584,30694,30784"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -29,9 +32,9 @@
|
|||
"to": {
|
||||
"startLines": "136,1833,1835,1836,1841,1843",
|
||||
"startColumns": "4,4,4,4,4,4",
|
||||
"startOffsets": "6910,117395,117571,117693,117955,118150",
|
||||
"startOffsets": "6910,117436,117612,117734,117996,118191",
|
||||
"endColumns": "88,65,121,60,65,66",
|
||||
"endOffsets": "6994,117456,117688,117749,118016,118212"
|
||||
"endOffsets": "6994,117497,117729,117790,118057,118253"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -44,9 +47,9 @@
|
|||
"to": {
|
||||
"startLines": "263,280,281,282,283,284,412,413,414,415,416,417,418,419,448",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "15665,16596,16655,16707,16757,16814,25163,25210,25261,25312,25363,25410,25459,25512,27223",
|
||||
"startOffsets": "15665,16596,16655,16707,16757,16814,25204,25251,25302,25353,25404,25451,25500,25553,27264",
|
||||
"endColumns": "57,58,51,49,56,53,46,50,50,50,46,48,52,117,49",
|
||||
"endOffsets": "15718,16650,16702,16752,16809,16863,25205,25256,25307,25358,25405,25454,25507,25625,27268"
|
||||
"endOffsets": "15718,16650,16702,16752,16809,16863,25246,25297,25348,25399,25446,25495,25548,25666,27309"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -59,10 +62,10 @@
|
|||
"to": {
|
||||
"startLines": "30,31,32,33,34,35,36,41,46,47,52,53,54,55,56,57,58,59,64,65,66,67,68,69,70,71,72,77,84,127,128,129,130,131,132,133,232,250,251,252,253,254,255,256,257,258,259,260,261,262,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,285,286,287,288,1546,1552,1563,1572,1583,1594",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "1030,1084,1147,1209,1272,1326,1388,1570,1749,1800,1979,2029,2074,2125,2171,2242,2297,2345,2522,2570,2625,2675,2727,2778,2830,2881,2930,3107,3519,6401,6453,6510,6563,6616,6668,6723,13518,14921,14975,15025,15088,15136,15193,15248,15299,15359,15418,15495,15552,15615,15723,15779,15832,15883,15937,15985,16031,16079,16136,16186,16241,16293,16352,16417,16473,16532,16868,16928,16988,17052,96281,96583,97259,97851,98540,99211",
|
||||
"startOffsets": "1030,1084,1147,1209,1272,1326,1388,1570,1749,1800,1979,2029,2074,2125,2171,2242,2297,2345,2522,2570,2625,2675,2727,2778,2830,2881,2930,3107,3519,6401,6453,6510,6563,6616,6668,6723,13518,14921,14975,15025,15088,15136,15193,15248,15299,15359,15418,15495,15552,15615,15723,15779,15832,15883,15937,15985,16031,16079,16136,16186,16241,16293,16352,16417,16473,16532,16868,16928,16988,17052,96322,96624,97300,97892,98581,99252",
|
||||
"endLines": "30,31,32,33,34,35,40,45,46,51,52,53,54,55,56,57,58,63,64,65,66,67,68,69,70,71,76,77,84,127,128,129,130,131,132,133,232,250,251,252,253,254,255,256,257,258,259,260,261,262,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,285,286,287,288,1551,1562,1571,1582,1593,1597",
|
||||
"endColumns": "53,62,61,62,53,61,11,11,50,11,49,44,50,45,70,54,47,11,47,54,49,51,50,51,50,48,11,49,42,51,56,52,52,51,54,54,54,53,49,62,47,56,54,50,59,58,76,56,62,49,55,52,50,53,47,45,47,56,49,54,51,58,64,55,58,63,59,59,63,48,12,12,12,12,12,12",
|
||||
"endOffsets": "1079,1142,1204,1267,1321,1383,1565,1744,1795,1974,2024,2069,2120,2166,2237,2292,2340,2517,2565,2620,2670,2722,2773,2825,2876,2925,3102,3152,3557,6448,6505,6558,6611,6663,6718,6773,13568,14970,15020,15083,15131,15188,15243,15294,15354,15413,15490,15547,15610,15660,15774,15827,15878,15932,15980,16026,16074,16131,16181,16236,16288,16347,16412,16468,16527,16591,16923,16983,17047,17096,96578,97254,97846,98535,99206,99405"
|
||||
"endOffsets": "1079,1142,1204,1267,1321,1383,1565,1744,1795,1974,2024,2069,2120,2166,2237,2292,2340,2517,2565,2620,2670,2722,2773,2825,2876,2925,3102,3152,3557,6448,6505,6558,6611,6663,6718,6773,13568,14970,15020,15083,15131,15188,15243,15294,15354,15413,15490,15547,15610,15660,15774,15827,15878,15932,15980,16026,16074,16131,16181,16236,16288,16347,16412,16468,16527,16591,16923,16983,17047,17096,96619,97295,97887,98576,99247,99446"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -75,10 +78,10 @@
|
|||
"to": {
|
||||
"startLines": "2010,2017,2023,2027,2033,2039,2045,2051",
|
||||
"startColumns": "4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "130528,130901,131205,131397,131676,131973,132256,132535",
|
||||
"startOffsets": "130569,130942,131246,131438,131717,132014,132297,132576",
|
||||
"endLines": "2016,2022,2026,2032,2038,2044,2050,2056",
|
||||
"endColumns": "12,12,12,12,12,12,12,12",
|
||||
"endOffsets": "130896,131200,131392,131671,131968,132251,132530,132819"
|
||||
"endOffsets": "130937,131241,131433,131712,132009,132292,132571,132860"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -106,10 +109,10 @@
|
|||
"to": {
|
||||
"startLines": "134,135,233,234,235,236,237,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,317,318,325,326,330,331,332,338,484,1828,1829,1834,1837,1842,2008,2009",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "6778,6847,13573,13643,13711,13783,13853,17101,17162,17223,17285,17349,17411,17472,17540,17640,17700,17766,17839,17908,17965,18017,18794,18866,19247,19282,19459,19493,19528,19838,29778,117077,117194,117461,117754,118021,130389,130461",
|
||||
"startOffsets": "6778,6847,13573,13643,13711,13783,13853,17101,17162,17223,17285,17349,17411,17472,17540,17640,17700,17766,17839,17908,17965,18017,18794,18866,19247,19282,19459,19493,19528,19838,29819,117118,117235,117502,117795,118062,130430,130502",
|
||||
"endLines": "134,135,233,234,235,236,237,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,317,318,325,326,330,331,332,338,484,1828,1832,1834,1840,1842,2008,2009",
|
||||
"endColumns": "68,62,69,67,71,69,60,60,60,61,63,61,60,67,99,59,65,72,68,56,51,61,71,75,34,34,33,34,34,69,70,116,12,109,12,128,71,66",
|
||||
"endOffsets": "6842,6905,13638,13706,13778,13848,13909,17157,17218,17280,17344,17406,17467,17535,17635,17695,17761,17834,17903,17960,18012,18074,18861,18937,19277,19312,19488,19523,19558,19903,29844,117189,117390,117566,117950,118145,130456,130523"
|
||||
"endOffsets": "6842,6905,13638,13706,13778,13848,13909,17157,17218,17280,17344,17406,17467,17535,17635,17695,17761,17834,17903,17960,18012,18074,18861,18937,19277,19312,19488,19523,19558,19903,29885,117230,117431,117607,117991,118186,130497,130564"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -137,20 +140,18 @@
|
|||
"to": {
|
||||
"startLines": "27,28,29,78,79,80,81,82,83,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,238,239,240,241,242,243,244,245,246,309,310,311,312,313,314,315,316,319,320,321,322,323,327,328,329,333,334,335,336,337,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,481,497,498,499,500,501,508,515,516,520,524,528,533,539,546,550,554,559,563,567,571,575,579,583,587,591,595,599,603,607,612,616,619,623,627,631,635,639,643,646,650,654,658,662,666,667,668,669,672,675,678,681,685,686,687,688,689,692,694,696,698,703,704,708,714,718,719,721,732,733,737,743,747,748,749,753,780,784,785,789,817,982,1004,1169,1191,1218,1225,1230,1244,1266,1271,1276,1286,1295,1304,1308,1315,1323,1330,1331,1340,1343,1346,1350,1354,1358,1361,1362,1366,1370,1380,1385,1392,1398,1399,1402,1406,1411,1413,1415,1418,1421,1423,1427,1430,1437,1440,1443,1447,1449,1453,1455,1461,1463,1467,1475,1483,1495,1501,1510,1513,1524,1527,1532,1533,1604,1646,1689,1690,1700,1709,1710,1712,1716,1719,1722,1725,1728,1732,1735,1738,1741,1745,1748,1752,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1781,1782,1783,1784,1785,1789,1790,1791,1792,1794,1796,1797,1798,1799,1800,1801,1802,1803,1805,1806,1808,1809,1811,1813,1814,1816,1817,1818,1819,1820,1821,1823,1824,1825,1826,1827,1844,1846,1848,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1892,1893,1894,1895,1896,1897,1899,1903,1907,1908,1909,1910,1911,1912,1913,1914,1916,1918,1920,1922,1924,1925,1926,1927,1929,1931,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1947,1948,1949,1950,1952,1954,1955,1957,1958,1960,1962,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1977,1978,1979,1980,1982,1983,1984,1985,1986,1988,1990,1992,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "881,936,981,3157,3198,3253,3311,3373,3441,3562,3643,3704,3779,3855,3932,4010,4095,4177,4253,4329,4406,4484,4590,4696,4775,4855,4912,5114,5188,5263,5328,5394,5449,5521,5594,5661,5729,5788,5847,5906,5965,6024,6078,6132,6185,6239,6293,6347,6999,7073,7152,7225,7299,7370,7442,7514,7587,7644,7702,7775,7849,7923,7998,8070,8143,8213,8284,8344,8462,8531,8600,8670,8744,8820,8884,8961,9037,9114,9178,9243,9312,9389,9464,9533,9601,9678,9744,9841,9906,9975,10074,10145,10204,10262,10319,10378,10449,10521,10593,10665,10737,10804,10872,10940,10999,11062,11126,11216,11307,11367,11433,11500,11566,11636,11700,11753,11866,11924,11987,12052,12117,12192,12265,12337,12386,12447,12508,12569,12631,12695,12759,12823,12888,12951,13011,13072,13138,13197,13257,13319,13390,13450,13914,14000,14087,14177,14264,14352,14434,14517,14607,18341,18393,18451,18496,18562,18626,18683,18740,18942,18999,19047,19096,19147,19317,19364,19413,19563,19595,19659,19721,19781,20261,20335,20413,20506,20576,20654,20708,20778,20863,20911,20957,21028,21106,21184,21256,21330,21404,21478,21558,21631,21700,21772,21849,21901,21974,22048,22117,22192,22266,22340,22429,29586,30748,30826,30916,31004,31100,31474,31975,32064,32311,32592,32836,33121,33514,33991,34213,34435,34703,34930,35160,35390,35620,35850,36077,36316,36542,36787,37017,37265,37484,37767,37975,38106,38333,38579,38804,39051,39272,39517,39637,39913,40214,40538,40829,41143,41280,41411,41516,41758,41925,42129,42337,42608,42720,42832,42937,43054,43268,43414,43554,43640,43988,44076,44306,44724,44957,45039,45137,45729,45829,46065,46489,46728,46822,46911,47148,49172,49414,49516,49753,51909,61854,63105,73147,74410,75902,76438,76768,77829,79094,79350,79586,80133,80627,81232,81430,82010,82574,82949,83067,83605,83762,83958,84231,84487,84657,84798,84862,85144,85430,86106,86370,86708,87061,87155,87341,87647,87909,88034,88161,88400,88611,88730,88923,89100,89555,89736,89858,90117,90230,90417,90519,90963,91087,91362,91870,92366,93243,93537,94107,94256,94988,95160,95496,95588,99729,102853,106120,106182,106760,107344,107430,107543,107772,107932,108084,108255,108422,108665,108835,109008,109179,109453,109652,109857,110187,110271,110367,110463,110561,110661,110763,110865,110967,111069,111171,111271,111367,111479,111608,111731,111862,111993,112091,112205,112299,112419,112623,112692,112808,112936,113000,113204,113273,113405,113475,113615,113749,113845,113957,114057,114173,114269,114381,114481,114621,114757,114921,115051,115209,115359,115500,115644,115779,115891,116041,116169,116297,116433,116565,116695,116825,116937,118217,118363,118507,119991,120057,120147,120223,120327,120417,120519,120627,120735,120835,120915,121007,121105,121215,121293,121399,121491,121595,121705,121827,121990,122147,122227,122327,122417,122527,122621,122727,122819,122919,123031,123145,123261,123377,123471,123585,123697,123799,123919,124041,124123,124227,124347,124473,124571,124665,124753,124865,124981,125103,125215,125390,125506,125592,125684,125796,125920,125987,126113,126181,126309,126453,126581,126650,126745,126860,126973,127072,127181,127292,127403,127504,127609,127709,127839,127930,128053,128147,128259,128345,128449,128545,128633,128751,128855,128959,129085,129173,129281,129381,129471,129581,129665,129767,129851,129905,129969,130075,130185,130269",
|
||||
"startOffsets": "881,936,981,3157,3198,3253,3311,3373,3441,3562,3643,3704,3779,3855,3932,4010,4095,4177,4253,4329,4406,4484,4590,4696,4775,4855,4912,5114,5188,5263,5328,5394,5449,5521,5594,5661,5729,5788,5847,5906,5965,6024,6078,6132,6185,6239,6293,6347,6999,7073,7152,7225,7299,7370,7442,7514,7587,7644,7702,7775,7849,7923,7998,8070,8143,8213,8284,8344,8462,8531,8600,8670,8744,8820,8884,8961,9037,9114,9178,9243,9312,9389,9464,9533,9601,9678,9744,9841,9906,9975,10074,10145,10204,10262,10319,10378,10449,10521,10593,10665,10737,10804,10872,10940,10999,11062,11126,11216,11307,11367,11433,11500,11566,11636,11700,11753,11866,11924,11987,12052,12117,12192,12265,12337,12386,12447,12508,12569,12631,12695,12759,12823,12888,12951,13011,13072,13138,13197,13257,13319,13390,13450,13914,14000,14087,14177,14264,14352,14434,14517,14607,18341,18393,18451,18496,18562,18626,18683,18740,18942,18999,19047,19096,19147,19317,19364,19413,19563,19595,19659,19721,19781,20301,20375,20453,20546,20616,20694,20748,20818,20903,20951,20997,21068,21146,21224,21296,21370,21444,21518,21598,21671,21740,21812,21889,21941,22014,22088,22157,22232,22306,22380,22469,29627,30789,30867,30957,31045,31141,31515,32016,32105,32352,32633,32877,33162,33555,34032,34254,34476,34744,34971,35201,35431,35661,35891,36118,36357,36583,36828,37058,37306,37525,37808,38016,38147,38374,38620,38845,39092,39313,39558,39678,39954,40255,40579,40870,41184,41321,41452,41557,41799,41966,42170,42378,42649,42761,42873,42978,43095,43309,43455,43595,43681,44029,44117,44347,44765,44998,45080,45178,45770,45870,46106,46530,46769,46863,46952,47189,49213,49455,49557,49794,51950,61895,63146,73188,74451,75943,76479,76809,77870,79135,79391,79627,80174,80668,81273,81471,82051,82615,82990,83108,83646,83803,83999,84272,84528,84698,84839,84903,85185,85471,86147,86411,86749,87102,87196,87382,87688,87950,88075,88202,88441,88652,88771,88964,89141,89596,89777,89899,90158,90271,90458,90560,91004,91128,91403,91911,92407,93284,93578,94148,94297,95029,95201,95537,95629,99770,102894,106161,106223,106801,107385,107471,107584,107813,107973,108125,108296,108463,108706,108876,109049,109220,109494,109693,109898,110228,110312,110408,110504,110602,110702,110804,110906,111008,111110,111212,111312,111408,111520,111649,111772,111903,112034,112132,112246,112340,112460,112664,112733,112849,112977,113041,113245,113314,113446,113516,113656,113790,113886,113998,114098,114214,114310,114422,114522,114662,114798,114962,115092,115250,115400,115541,115685,115820,115932,116082,116210,116338,116474,116606,116736,116866,116978,118258,118404,118548,120032,120098,120188,120264,120368,120458,120560,120668,120776,120876,120956,121048,121146,121256,121334,121440,121532,121636,121746,121868,122031,122188,122268,122368,122458,122568,122662,122768,122860,122960,123072,123186,123302,123418,123512,123626,123738,123840,123960,124082,124164,124268,124388,124514,124612,124706,124794,124906,125022,125144,125256,125431,125547,125633,125725,125837,125961,126028,126154,126222,126350,126494,126622,126691,126786,126901,127014,127113,127222,127333,127444,127545,127650,127750,127880,127971,128094,128188,128300,128386,128490,128586,128674,128792,128896,129000,129126,129214,129322,129422,129512,129622,129706,129808,129892,129946,130010,130116,130226,130310",
|
||||
"endLines": "27,28,29,78,79,80,81,82,83,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,238,239,240,241,242,243,244,245,246,309,310,311,312,313,314,315,316,319,320,321,322,323,327,328,329,333,334,335,336,337,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,481,497,498,499,500,501,514,515,519,523,527,532,538,545,549,553,558,562,566,570,574,578,582,586,590,594,598,602,606,611,615,618,622,626,630,634,638,642,645,649,653,657,661,665,666,667,668,671,674,677,680,684,685,686,687,688,691,693,695,697,702,703,707,713,717,718,720,731,732,736,742,746,747,748,752,779,783,784,788,816,981,1003,1168,1190,1217,1224,1229,1243,1265,1270,1275,1285,1294,1303,1307,1314,1322,1329,1330,1339,1342,1345,1349,1353,1357,1360,1361,1365,1369,1379,1384,1391,1397,1398,1401,1405,1410,1412,1414,1417,1420,1422,1426,1429,1436,1439,1442,1446,1448,1452,1454,1460,1462,1466,1474,1482,1494,1500,1509,1512,1523,1526,1531,1532,1537,1645,1688,1689,1699,1708,1709,1711,1715,1718,1721,1724,1727,1731,1734,1737,1740,1744,1747,1751,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1780,1781,1782,1783,1784,1788,1789,1790,1791,1793,1795,1796,1797,1798,1799,1800,1801,1802,1804,1805,1807,1808,1810,1812,1813,1815,1816,1817,1818,1819,1820,1822,1823,1824,1825,1826,1827,1845,1847,1849,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1891,1892,1893,1894,1895,1896,1898,1902,1906,1907,1908,1909,1910,1911,1912,1913,1915,1917,1919,1921,1923,1924,1925,1926,1928,1930,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1946,1947,1948,1949,1951,1953,1954,1956,1957,1959,1961,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1976,1977,1978,1979,1981,1982,1983,1984,1985,1987,1989,1991,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007",
|
||||
"endColumns": "54,44,48,40,54,57,61,67,77,80,60,74,75,76,77,84,81,75,75,76,77,105,105,78,79,56,57,73,74,64,65,54,71,72,66,67,58,58,58,58,58,53,53,52,53,53,53,53,73,78,72,73,70,71,71,72,56,57,72,73,73,74,71,72,69,70,59,60,68,68,69,73,75,63,76,75,76,63,64,68,76,74,68,67,76,65,96,64,68,98,70,58,57,56,58,70,71,71,71,71,66,67,67,58,62,63,89,90,59,65,66,65,69,63,52,112,57,62,64,64,74,72,71,48,60,60,60,61,63,63,63,64,62,59,60,65,58,59,61,70,59,67,85,86,89,86,87,81,82,89,90,51,57,44,65,63,56,56,53,56,47,48,50,33,46,48,45,31,63,61,59,56,73,77,92,69,77,53,69,84,47,45,70,77,77,71,73,73,73,79,72,68,71,76,51,72,73,68,74,73,73,88,69,52,77,89,87,95,89,12,88,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,136,130,104,12,12,12,12,12,111,111,104,116,12,12,12,12,12,87,12,12,12,81,12,12,99,12,12,12,93,88,12,12,12,101,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,117,12,12,12,12,12,12,12,63,12,12,12,12,12,12,93,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,91,12,12,12,61,12,12,85,12,12,12,12,12,12,12,12,12,12,12,12,12,12,83,95,95,97,99,101,101,101,101,101,99,95,111,128,122,130,130,97,113,93,119,12,68,115,127,63,12,68,131,69,12,12,95,111,99,115,95,111,99,12,135,12,129,12,12,140,12,134,111,149,127,127,12,131,129,129,111,139,12,12,12,65,89,75,103,89,101,107,107,99,79,91,97,12,77,105,91,103,109,12,12,12,79,99,89,109,93,105,91,12,12,12,12,12,93,113,111,12,12,12,81,103,119,125,97,93,87,111,115,121,111,12,115,85,91,12,12,66,12,67,12,12,12,68,94,114,112,98,108,110,110,100,104,99,12,90,122,93,12,85,103,95,87,12,12,12,12,87,107,99,89,109,83,101,83,53,63,105,109,83,119",
|
||||
"endOffsets": "931,976,1025,3193,3248,3306,3368,3436,3514,3638,3699,3774,3850,3927,4005,4090,4172,4248,4324,4401,4479,4585,4691,4770,4850,4907,4965,5183,5258,5323,5389,5444,5516,5589,5656,5724,5783,5842,5901,5960,6019,6073,6127,6180,6234,6288,6342,6396,7068,7147,7220,7294,7365,7437,7509,7582,7639,7697,7770,7844,7918,7993,8065,8138,8208,8279,8339,8400,8526,8595,8665,8739,8815,8879,8956,9032,9109,9173,9238,9307,9384,9459,9528,9596,9673,9739,9836,9901,9970,10069,10140,10199,10257,10314,10373,10444,10516,10588,10660,10732,10799,10867,10935,10994,11057,11121,11211,11302,11362,11428,11495,11561,11631,11695,11748,11861,11919,11982,12047,12112,12187,12260,12332,12381,12442,12503,12564,12626,12690,12754,12818,12883,12946,13006,13067,13133,13192,13252,13314,13385,13445,13513,13995,14082,14172,14259,14347,14429,14512,14602,14693,18388,18446,18491,18557,18621,18678,18735,18789,18994,19042,19091,19142,19176,19359,19408,19454,19590,19654,19716,19776,19833,20330,20408,20501,20571,20649,20703,20773,20858,20906,20952,21023,21101,21179,21251,21325,21399,21473,21553,21626,21695,21767,21844,21896,21969,22043,22112,22187,22261,22335,22424,22494,29634,30821,30911,30999,31095,31185,31970,32059,32306,32587,32831,33116,33509,33986,34208,34430,34698,34925,35155,35385,35615,35845,36072,36311,36537,36782,37012,37260,37479,37762,37970,38101,38328,38574,38799,39046,39267,39512,39632,39908,40209,40533,40824,41138,41275,41406,41511,41753,41920,42124,42332,42603,42715,42827,42932,43049,43263,43409,43549,43635,43983,44071,44301,44719,44952,45034,45132,45724,45824,46060,46484,46723,46817,46906,47143,49167,49409,49511,49748,51904,61849,63100,73142,74405,75897,76433,76763,77824,79089,79345,79581,80128,80622,81227,81425,82005,82569,82944,83062,83600,83757,83953,84226,84482,84652,84793,84857,85139,85425,86101,86365,86703,87056,87150,87336,87642,87904,88029,88156,88395,88606,88725,88918,89095,89550,89731,89853,90112,90225,90412,90514,90958,91082,91357,91865,92361,93238,93532,94102,94251,94983,95155,95491,95583,95861,102848,106115,106177,106755,107339,107425,107538,107767,107927,108079,108250,108417,108660,108830,109003,109174,109448,109647,109852,110182,110266,110362,110458,110556,110656,110758,110860,110962,111064,111166,111266,111362,111474,111603,111726,111857,111988,112086,112200,112294,112414,112618,112687,112803,112931,112995,113199,113268,113400,113470,113610,113744,113840,113952,114052,114168,114264,114376,114476,114616,114752,114916,115046,115204,115354,115495,115639,115774,115886,116036,116164,116292,116428,116560,116690,116820,116932,117072,118358,118502,118640,120052,120142,120218,120322,120412,120514,120622,120730,120830,120910,121002,121100,121210,121288,121394,121486,121590,121700,121822,121985,122142,122222,122322,122412,122522,122616,122722,122814,122914,123026,123140,123256,123372,123466,123580,123692,123794,123914,124036,124118,124222,124342,124468,124566,124660,124748,124860,124976,125098,125210,125385,125501,125587,125679,125791,125915,125982,126108,126176,126304,126448,126576,126645,126740,126855,126968,127067,127176,127287,127398,127499,127604,127704,127834,127925,128048,128142,128254,128340,128444,128540,128628,128746,128850,128954,129080,129168,129276,129376,129466,129576,129660,129762,129846,129900,129964,130070,130180,130264,130384"
|
||||
"endOffsets": "931,976,1025,3193,3248,3306,3368,3436,3514,3638,3699,3774,3850,3927,4005,4090,4172,4248,4324,4401,4479,4585,4691,4770,4850,4907,4965,5183,5258,5323,5389,5444,5516,5589,5656,5724,5783,5842,5901,5960,6019,6073,6127,6180,6234,6288,6342,6396,7068,7147,7220,7294,7365,7437,7509,7582,7639,7697,7770,7844,7918,7993,8065,8138,8208,8279,8339,8400,8526,8595,8665,8739,8815,8879,8956,9032,9109,9173,9238,9307,9384,9459,9528,9596,9673,9739,9836,9901,9970,10069,10140,10199,10257,10314,10373,10444,10516,10588,10660,10732,10799,10867,10935,10994,11057,11121,11211,11302,11362,11428,11495,11561,11631,11695,11748,11861,11919,11982,12047,12112,12187,12260,12332,12381,12442,12503,12564,12626,12690,12754,12818,12883,12946,13006,13067,13133,13192,13252,13314,13385,13445,13513,13995,14082,14172,14259,14347,14429,14512,14602,14693,18388,18446,18491,18557,18621,18678,18735,18789,18994,19042,19091,19142,19176,19359,19408,19454,19590,19654,19716,19776,19833,20370,20448,20541,20611,20689,20743,20813,20898,20946,20992,21063,21141,21219,21291,21365,21439,21513,21593,21666,21735,21807,21884,21936,22009,22083,22152,22227,22301,22375,22464,22534,29675,30862,30952,31040,31136,31226,32011,32100,32347,32628,32872,33157,33550,34027,34249,34471,34739,34966,35196,35426,35656,35886,36113,36352,36578,36823,37053,37301,37520,37803,38011,38142,38369,38615,38840,39087,39308,39553,39673,39949,40250,40574,40865,41179,41316,41447,41552,41794,41961,42165,42373,42644,42756,42868,42973,43090,43304,43450,43590,43676,44024,44112,44342,44760,44993,45075,45173,45765,45865,46101,46525,46764,46858,46947,47184,49208,49450,49552,49789,51945,61890,63141,73183,74446,75938,76474,76804,77865,79130,79386,79622,80169,80663,81268,81466,82046,82610,82985,83103,83641,83798,83994,84267,84523,84693,84834,84898,85180,85466,86142,86406,86744,87097,87191,87377,87683,87945,88070,88197,88436,88647,88766,88959,89136,89591,89772,89894,90153,90266,90453,90555,90999,91123,91398,91906,92402,93279,93573,94143,94292,95024,95196,95532,95624,95902,102889,106156,106218,106796,107380,107466,107579,107808,107968,108120,108291,108458,108701,108871,109044,109215,109489,109688,109893,110223,110307,110403,110499,110597,110697,110799,110901,111003,111105,111207,111307,111403,111515,111644,111767,111898,112029,112127,112241,112335,112455,112659,112728,112844,112972,113036,113240,113309,113441,113511,113651,113785,113881,113993,114093,114209,114305,114417,114517,114657,114793,114957,115087,115245,115395,115536,115680,115815,115927,116077,116205,116333,116469,116601,116731,116861,116973,117113,118399,118543,118681,120093,120183,120259,120363,120453,120555,120663,120771,120871,120951,121043,121141,121251,121329,121435,121527,121631,121741,121863,122026,122183,122263,122363,122453,122563,122657,122763,122855,122955,123067,123181,123297,123413,123507,123621,123733,123835,123955,124077,124159,124263,124383,124509,124607,124701,124789,124901,125017,125139,125251,125426,125542,125628,125720,125832,125956,126023,126149,126217,126345,126489,126617,126686,126781,126896,127009,127108,127217,127328,127439,127540,127645,127745,127875,127966,128089,128183,128295,128381,128485,128581,128669,128787,128891,128995,129121,129209,129317,129417,129507,129617,129701,129803,129887,129941,130005,130111,130221,130305,130425"
|
||||
}
|
||||
},
|
||||
{
|
||||
"source": "D:\\minote\\src\\app\\src\\main\\res\\values\\colors.xml",
|
||||
"from": {
|
||||
"startLines": "-1,19,20,-1",
|
||||
"startColumns": "-1,4,4,-1",
|
||||
"startOffsets": "-1,788,836,-1",
|
||||
"endColumns": "-1,46,50,-1",
|
||||
"endOffsets": "-1,830,882,-1"
|
||||
"startLines": "-1,-1,-1,-1",
|
||||
"startColumns": "-1,-1,-1,-1",
|
||||
"startOffsets": "-1,-1,-1,-1"
|
||||
},
|
||||
"to": {
|
||||
"startLines": "103,104,105,157",
|
||||
|
@ -170,10 +171,10 @@
|
|||
"to": {
|
||||
"startLines": "502,1538,1542,1598,1601,1850,1854,1858,1862,1866,1870,1874",
|
||||
"startColumns": "4,4,4,4,4,4,4,4,4,4,4,4",
|
||||
"startOffsets": "31190,95866,96070,99410,99569,118645,118828,119013,119198,119401,119607,119790",
|
||||
"startOffsets": "31231,95907,96111,99451,99610,118686,118869,119054,119239,119442,119648,119831",
|
||||
"endLines": "507,1541,1545,1600,1603,1853,1857,1861,1865,1869,1873,1877",
|
||||
"endColumns": "12,12,12,12,12,12,12,12,12,12,12,12",
|
||||
"endOffsets": "31469,96065,96276,99564,99724,118823,119008,119193,119396,119602,119785,119986"
|
||||
"endOffsets": "31510,96106,96317,99605,99765,118864,119049,119234,119437,119643,119826,120027"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -52,8 +52,7 @@
|
|||
android:debuggable="true"
|
||||
android:icon="@drawable/icon_app"
|
||||
android:label="@string/app_name"
|
||||
android:supportsRtl="true"
|
||||
android:testOnly="true" >
|
||||
android:supportsRtl="true" >
|
||||
<activity
|
||||
android:name="net.micode.notes.ui.NotesListActivity"
|
||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
|
@ -69,7 +68,7 @@
|
|||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name="net.micode.notes.audiodemo.VoiceActivity"
|
||||
android:name="net.micode.notes.audiorecord.VoiceActivity"
|
||||
android:theme="@style/AppTheme" >
|
||||
</activity>
|
||||
<activity
|
||||
|
|
Binary file not shown.
|
@ -1,4 +1,4 @@
|
|||
#Tue Dec 03 15:33:20 CST 2019
|
||||
#Sat Dec 07 00:36:42 CST 2019
|
||||
D\:\\minote\\src\\app\\src\\main\\res\\drawable-hdpi\\action_align_center.png=D\:\\minote\\src\\app\\build\\intermediates\\res\\merged\\debug\\drawable-hdpi_action_align_center.png.flat
|
||||
C\:\\Users\\dsj6789\\.gradle\\caches\\transforms-2\\files-2.1\\ae96e93538d5561f2c3a92fa78661cdb\\core-0.9.1.0\\res\\layout\\md_stub_actionbuttons.xml=D\:\\minote\\src\\app\\build\\intermediates\\res\\merged\\debug\\layout_md_stub_actionbuttons.xml.flat
|
||||
C\:\\Users\\dsj6789\\.gradle\\caches\\transforms-2\\files-2.1\\c6eab15e29e7689fa75201e757862466\\appcompat-v7-26.1.0\\res\\drawable-mdpi-v4\\abc_textfield_default_mtrl_alpha.9.png=D\:\\minote\\src\\app\\build\\intermediates\\res\\merged\\debug\\drawable-mdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat
|
||||
|
|
|
@ -1916,7 +1916,7 @@
|
|||
<item quantity="one"><ns2:g example="1" id="number">%1$s</ns2:g> result for \"<ns2:g example="???" id="search">%2$s</ns2:g>\"</item>
|
||||
|
||||
<item quantity="other"><ns2:g example="15" id="number">%1$s</ns2:g> results for \"<ns2:g example="???" id="search">%2$s</ns2:g>\"</item>
|
||||
</plurals><string name="note_length">Length</string><string name="create_new_todo">create new ToDo</string><string name="hint_todo_text">Input ToDo</string><string name="todo_welcome">Welcome to use Mi ToDo !</string><string name="read_note">Read</string><string name="community_chat_list_remove_above_cancel_send">手指上滑,取消发送</string><string name="community_chat_list_rec_voice_short">录音时间太短</string><string name="community_chat_list_rec_voice_failure">录音失败!</string><string name="community_chat_list_loosen_cancel_send">松开手指,取消发送</string></file><file path="D:\minote\src\app\src\main\res\values\styles.xml" qualifiers=""><style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||
</plurals><string name="note_length">Length</string><string name="create_new_todo">create new ToDo</string><string name="hint_todo_text">Input ToDo</string><string name="todo_welcome">Welcome to use Mi ToDo !</string><string name="read_note">Read</string><string name="community_chat_list_remove_above_cancel_send">手指上滑,可取消发送</string><string name="community_chat_list_rec_voice_short">录音时间太短</string><string name="community_chat_list_rec_voice_failure">录音失败!</string><string name="community_chat_list_loosen_cancel_send">松开手指,取消发送</string></file><file path="D:\minote\src\app\src\main\res\values\styles.xml" qualifiers=""><style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||
|
||||
<item name="colorPrimary">@color/colorPrimary</item>
|
||||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#Tue Dec 03 15:33:21 CST 2019
|
||||
#Tue Dec 24 21:04:31 CST 2019
|
||||
base.0=D\:\\minote\\src\\app\\build\\intermediates\\dex\\debug\\mergeDexDebug\\out\\classes.dex
|
||||
path.0=classes.dex
|
||||
renamed.0=classes.dex
|
||||
|
|
|
@ -53,8 +53,7 @@
|
|||
android:debuggable="true"
|
||||
android:icon="@drawable/icon_app"
|
||||
android:label="@string/app_name"
|
||||
android:supportsRtl="true"
|
||||
android:testOnly="true" >
|
||||
android:supportsRtl="true" >
|
||||
<activity
|
||||
android:name="net.micode.notes.ui.NotesListActivity"
|
||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
|
@ -70,7 +69,7 @@
|
|||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name="net.micode.notes.audiodemo.VoiceActivity"
|
||||
android:name="net.micode.notes.audiorecord.VoiceActivity"
|
||||
android:theme="@style/AppTheme" >
|
||||
</activity>
|
||||
<activity
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -104,236 +104,235 @@
|
|||
53-->D:\minote\src\app\src\main\AndroidManifest.xml:48:9-42
|
||||
54 android:label="@string/app_name"
|
||||
54-->D:\minote\src\app\src\main\AndroidManifest.xml:49:9-41
|
||||
55 android:supportsRtl="true"
|
||||
55 android:supportsRtl="true" >
|
||||
55-->[:library] D:\minote\src\app\library\build\intermediates\library_manifest\debug\AndroidManifest.xml:14:9-35
|
||||
56 android:testOnly="true" >
|
||||
57 <activity
|
||||
57-->D:\minote\src\app\src\main\AndroidManifest.xml:50:9-63:20
|
||||
58 android:name="net.micode.notes.ui.NotesListActivity"
|
||||
58-->D:\minote\src\app\src\main\AndroidManifest.xml:51:13-49
|
||||
59 android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
59-->D:\minote\src\app\src\main\AndroidManifest.xml:53:13-74
|
||||
60 android:label="@string/app_name"
|
||||
60-->D:\minote\src\app\src\main\AndroidManifest.xml:54:13-45
|
||||
61 android:launchMode="singleTop"
|
||||
61-->D:\minote\src\app\src\main\AndroidManifest.xml:55:13-43
|
||||
62 android:logo="@drawable/icon_actionbar"
|
||||
62-->D:\minote\src\app\src\main\AndroidManifest.xml:52:13-52
|
||||
63 android:theme="@android:style/Theme.Holo.Light"
|
||||
63-->D:\minote\src\app\src\main\AndroidManifest.xml:56:13-60
|
||||
64 android:windowSoftInputMode="adjustPan" >
|
||||
64-->D:\minote\src\app\src\main\AndroidManifest.xml:57:13-52
|
||||
65 <intent-filter>
|
||||
65-->D:\minote\src\app\src\main\AndroidManifest.xml:59:13-62:29
|
||||
66 <action android:name="android.intent.action.MAIN" />
|
||||
66-->D:\minote\src\app\src\main\AndroidManifest.xml:60:17-69
|
||||
66-->D:\minote\src\app\src\main\AndroidManifest.xml:60:25-66
|
||||
67
|
||||
68 <category android:name="android.intent.category.LAUNCHER" />
|
||||
68-->D:\minote\src\app\src\main\AndroidManifest.xml:61:17-77
|
||||
68-->D:\minote\src\app\src\main\AndroidManifest.xml:61:27-74
|
||||
69 </intent-filter>
|
||||
70 </activity>
|
||||
71 <activity
|
||||
71-->D:\minote\src\app\src\main\AndroidManifest.xml:65:9-68:20
|
||||
72 android:name="net.micode.notes.audiodemo.VoiceActivity"
|
||||
72-->D:\minote\src\app\src\main\AndroidManifest.xml:66:13-52
|
||||
73 android:theme="@style/AppTheme" >
|
||||
73-->D:\minote\src\app\src\main\AndroidManifest.xml:67:13-44
|
||||
74 </activity>
|
||||
75 <activity
|
||||
75-->D:\minote\src\app\src\main\AndroidManifest.xml:70:9-99:20
|
||||
76 android:name="net.micode.notes.ui.NoteEditActivity"
|
||||
76-->D:\minote\src\app\src\main\AndroidManifest.xml:71:13-48
|
||||
77 android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
77-->D:\minote\src\app\src\main\AndroidManifest.xml:73:13-74
|
||||
78 android:launchMode="singleTop"
|
||||
78-->D:\minote\src\app\src\main\AndroidManifest.xml:74:13-43
|
||||
79 android:logo="@drawable/icon_actionbar"
|
||||
79-->D:\minote\src\app\src\main\AndroidManifest.xml:72:13-52
|
||||
80 android:theme="@style/NoteTheme" >
|
||||
80-->D:\minote\src\app\src\main\AndroidManifest.xml:75:13-45
|
||||
81 <intent-filter>
|
||||
81-->D:\minote\src\app\src\main\AndroidManifest.xml:77:13-82:29
|
||||
82 <action android:name="android.intent.action.VIEW" />
|
||||
82-->D:\minote\src\app\src\main\AndroidManifest.xml:78:17-69
|
||||
82-->D:\minote\src\app\src\main\AndroidManifest.xml:78:25-66
|
||||
83
|
||||
84 <category android:name="android.intent.category.DEFAULT" />
|
||||
84-->D:\minote\src\app\src\main\AndroidManifest.xml:79:17-76
|
||||
84-->D:\minote\src\app\src\main\AndroidManifest.xml:79:27-73
|
||||
85
|
||||
86 <data android:mimeType="vnd.android.cursor.item/text_note" />
|
||||
56 <activity
|
||||
56-->D:\minote\src\app\src\main\AndroidManifest.xml:50:9-63:20
|
||||
57 android:name="net.micode.notes.ui.NotesListActivity"
|
||||
57-->D:\minote\src\app\src\main\AndroidManifest.xml:51:13-49
|
||||
58 android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
58-->D:\minote\src\app\src\main\AndroidManifest.xml:53:13-74
|
||||
59 android:label="@string/app_name"
|
||||
59-->D:\minote\src\app\src\main\AndroidManifest.xml:54:13-45
|
||||
60 android:launchMode="singleTop"
|
||||
60-->D:\minote\src\app\src\main\AndroidManifest.xml:55:13-43
|
||||
61 android:logo="@drawable/icon_actionbar"
|
||||
61-->D:\minote\src\app\src\main\AndroidManifest.xml:52:13-52
|
||||
62 android:theme="@android:style/Theme.Holo.Light"
|
||||
62-->D:\minote\src\app\src\main\AndroidManifest.xml:56:13-60
|
||||
63 android:windowSoftInputMode="adjustPan" >
|
||||
63-->D:\minote\src\app\src\main\AndroidManifest.xml:57:13-52
|
||||
64 <intent-filter>
|
||||
64-->D:\minote\src\app\src\main\AndroidManifest.xml:59:13-62:29
|
||||
65 <action android:name="android.intent.action.MAIN" />
|
||||
65-->D:\minote\src\app\src\main\AndroidManifest.xml:60:17-69
|
||||
65-->D:\minote\src\app\src\main\AndroidManifest.xml:60:25-66
|
||||
66
|
||||
67 <category android:name="android.intent.category.LAUNCHER" />
|
||||
67-->D:\minote\src\app\src\main\AndroidManifest.xml:61:17-77
|
||||
67-->D:\minote\src\app\src\main\AndroidManifest.xml:61:27-74
|
||||
68 </intent-filter>
|
||||
69 </activity>
|
||||
70 <activity
|
||||
70-->D:\minote\src\app\src\main\AndroidManifest.xml:65:9-68:20
|
||||
71 android:name="net.micode.notes.audiorecord.VoiceActivity"
|
||||
71-->D:\minote\src\app\src\main\AndroidManifest.xml:66:13-54
|
||||
72 android:theme="@style/AppTheme" >
|
||||
72-->D:\minote\src\app\src\main\AndroidManifest.xml:67:13-44
|
||||
73 </activity>
|
||||
74 <activity
|
||||
74-->D:\minote\src\app\src\main\AndroidManifest.xml:70:9-99:20
|
||||
75 android:name="net.micode.notes.ui.NoteEditActivity"
|
||||
75-->D:\minote\src\app\src\main\AndroidManifest.xml:71:13-48
|
||||
76 android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
76-->D:\minote\src\app\src\main\AndroidManifest.xml:73:13-74
|
||||
77 android:launchMode="singleTop"
|
||||
77-->D:\minote\src\app\src\main\AndroidManifest.xml:74:13-43
|
||||
78 android:logo="@drawable/icon_actionbar"
|
||||
78-->D:\minote\src\app\src\main\AndroidManifest.xml:72:13-52
|
||||
79 android:theme="@style/NoteTheme" >
|
||||
79-->D:\minote\src\app\src\main\AndroidManifest.xml:75:13-45
|
||||
80 <intent-filter>
|
||||
80-->D:\minote\src\app\src\main\AndroidManifest.xml:77:13-82:29
|
||||
81 <action android:name="android.intent.action.VIEW" />
|
||||
81-->D:\minote\src\app\src\main\AndroidManifest.xml:78:17-69
|
||||
81-->D:\minote\src\app\src\main\AndroidManifest.xml:78:25-66
|
||||
82
|
||||
83 <category android:name="android.intent.category.DEFAULT" />
|
||||
83-->D:\minote\src\app\src\main\AndroidManifest.xml:79:17-76
|
||||
83-->D:\minote\src\app\src\main\AndroidManifest.xml:79:27-73
|
||||
84
|
||||
85 <data android:mimeType="vnd.android.cursor.item/text_note" />
|
||||
85-->D:\minote\src\app\src\main\AndroidManifest.xml:80:17-78
|
||||
85-->D:\minote\src\app\src\main\AndroidManifest.xml:80:23-75
|
||||
86 <data android:mimeType="vnd.android.cursor.item/call_note" />
|
||||
86-->D:\minote\src\app\src\main\AndroidManifest.xml:80:17-78
|
||||
86-->D:\minote\src\app\src\main\AndroidManifest.xml:80:23-75
|
||||
87 <data android:mimeType="vnd.android.cursor.item/call_note" />
|
||||
87-->D:\minote\src\app\src\main\AndroidManifest.xml:80:17-78
|
||||
87-->D:\minote\src\app\src\main\AndroidManifest.xml:80:23-75
|
||||
88 </intent-filter>
|
||||
89 <intent-filter>
|
||||
89-->D:\minote\src\app\src\main\AndroidManifest.xml:84:13-89:29
|
||||
90 <action android:name="android.intent.action.INSERT_OR_EDIT" />
|
||||
90-->D:\minote\src\app\src\main\AndroidManifest.xml:85:17-79
|
||||
90-->D:\minote\src\app\src\main\AndroidManifest.xml:85:25-76
|
||||
91
|
||||
92 <category android:name="android.intent.category.DEFAULT" />
|
||||
92-->D:\minote\src\app\src\main\AndroidManifest.xml:79:17-76
|
||||
92-->D:\minote\src\app\src\main\AndroidManifest.xml:79:27-73
|
||||
93
|
||||
94 <data android:mimeType="vnd.android.cursor.item/text_note" />
|
||||
87 </intent-filter>
|
||||
88 <intent-filter>
|
||||
88-->D:\minote\src\app\src\main\AndroidManifest.xml:84:13-89:29
|
||||
89 <action android:name="android.intent.action.INSERT_OR_EDIT" />
|
||||
89-->D:\minote\src\app\src\main\AndroidManifest.xml:85:17-79
|
||||
89-->D:\minote\src\app\src\main\AndroidManifest.xml:85:25-76
|
||||
90
|
||||
91 <category android:name="android.intent.category.DEFAULT" />
|
||||
91-->D:\minote\src\app\src\main\AndroidManifest.xml:79:17-76
|
||||
91-->D:\minote\src\app\src\main\AndroidManifest.xml:79:27-73
|
||||
92
|
||||
93 <data android:mimeType="vnd.android.cursor.item/text_note" />
|
||||
93-->D:\minote\src\app\src\main\AndroidManifest.xml:80:17-78
|
||||
93-->D:\minote\src\app\src\main\AndroidManifest.xml:80:23-75
|
||||
94 <data android:mimeType="vnd.android.cursor.item/call_note" />
|
||||
94-->D:\minote\src\app\src\main\AndroidManifest.xml:80:17-78
|
||||
94-->D:\minote\src\app\src\main\AndroidManifest.xml:80:23-75
|
||||
95 <data android:mimeType="vnd.android.cursor.item/call_note" />
|
||||
95-->D:\minote\src\app\src\main\AndroidManifest.xml:80:17-78
|
||||
95-->D:\minote\src\app\src\main\AndroidManifest.xml:80:23-75
|
||||
96 </intent-filter>
|
||||
97 <intent-filter>
|
||||
97-->D:\minote\src\app\src\main\AndroidManifest.xml:91:13-94:29
|
||||
98 <action android:name="android.intent.action.SEARCH" />
|
||||
98-->D:\minote\src\app\src\main\AndroidManifest.xml:92:17-71
|
||||
98-->D:\minote\src\app\src\main\AndroidManifest.xml:92:25-68
|
||||
99
|
||||
100 <category android:name="android.intent.category.DEFAULT" />
|
||||
100-->D:\minote\src\app\src\main\AndroidManifest.xml:79:17-76
|
||||
100-->D:\minote\src\app\src\main\AndroidManifest.xml:79:27-73
|
||||
101 </intent-filter>
|
||||
102
|
||||
103 <meta-data
|
||||
103-->D:\minote\src\app\src\main\AndroidManifest.xml:96:13-98:54
|
||||
104 android:name="android.app.searchable"
|
||||
104-->D:\minote\src\app\src\main\AndroidManifest.xml:97:17-54
|
||||
105 android:resource="@xml/searchable" />
|
||||
105-->D:\minote\src\app\src\main\AndroidManifest.xml:98:17-51
|
||||
106 </activity>
|
||||
107
|
||||
108 <provider
|
||||
108-->D:\minote\src\app\src\main\AndroidManifest.xml:101:9-104:43
|
||||
109 android:name="net.micode.notes.data.NotesProvider"
|
||||
109-->D:\minote\src\app\src\main\AndroidManifest.xml:102:13-63
|
||||
110 android:authorities="micode_notes"
|
||||
110-->D:\minote\src\app\src\main\AndroidManifest.xml:103:13-47
|
||||
111 android:multiprocess="true" />
|
||||
111-->D:\minote\src\app\src\main\AndroidManifest.xml:104:13-40
|
||||
112
|
||||
113 <receiver
|
||||
113-->D:\minote\src\app\src\main\AndroidManifest.xml:106:9-118:20
|
||||
114 android:name="net.micode.notes.widget.NoteWidgetProvider_2x"
|
||||
114-->D:\minote\src\app\src\main\AndroidManifest.xml:107:13-57
|
||||
115 android:label="@string/app_widget2x2" >
|
||||
115-->D:\minote\src\app\src\main\AndroidManifest.xml:108:13-50
|
||||
116 <intent-filter>
|
||||
116-->D:\minote\src\app\src\main\AndroidManifest.xml:109:13-113:29
|
||||
117 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
117-->D:\minote\src\app\src\main\AndroidManifest.xml:110:17-84
|
||||
117-->D:\minote\src\app\src\main\AndroidManifest.xml:110:25-81
|
||||
118 <action android:name="android.appwidget.action.APPWIDGET_DELETED" />
|
||||
118-->D:\minote\src\app\src\main\AndroidManifest.xml:111:17-85
|
||||
118-->D:\minote\src\app\src\main\AndroidManifest.xml:111:25-82
|
||||
119 <action android:name="android.intent.action.PRIVACY_MODE_CHANGED" />
|
||||
119-->D:\minote\src\app\src\main\AndroidManifest.xml:112:17-85
|
||||
119-->D:\minote\src\app\src\main\AndroidManifest.xml:112:25-82
|
||||
120 </intent-filter>
|
||||
121
|
||||
122 <meta-data
|
||||
122-->D:\minote\src\app\src\main\AndroidManifest.xml:115:13-117:58
|
||||
123 android:name="android.appwidget.provider"
|
||||
123-->D:\minote\src\app\src\main\AndroidManifest.xml:116:17-58
|
||||
124 android:resource="@xml/widget_2x_info" />
|
||||
124-->D:\minote\src\app\src\main\AndroidManifest.xml:117:17-55
|
||||
125 </receiver>
|
||||
126 <receiver
|
||||
126-->D:\minote\src\app\src\main\AndroidManifest.xml:119:9-132:20
|
||||
127 android:name="net.micode.notes.widget.NoteWidgetProvider_4x"
|
||||
127-->D:\minote\src\app\src\main\AndroidManifest.xml:120:13-57
|
||||
128 android:label="@string/app_widget4x4" >
|
||||
128-->D:\minote\src\app\src\main\AndroidManifest.xml:121:13-50
|
||||
129 <intent-filter>
|
||||
129-->D:\minote\src\app\src\main\AndroidManifest.xml:109:13-113:29
|
||||
130 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
130-->D:\minote\src\app\src\main\AndroidManifest.xml:110:17-84
|
||||
130-->D:\minote\src\app\src\main\AndroidManifest.xml:110:25-81
|
||||
131 <action android:name="android.appwidget.action.APPWIDGET_DELETED" />
|
||||
131-->D:\minote\src\app\src\main\AndroidManifest.xml:111:17-85
|
||||
131-->D:\minote\src\app\src\main\AndroidManifest.xml:111:25-82
|
||||
132 <action android:name="android.intent.action.PRIVACY_MODE_CHANGED" />
|
||||
132-->D:\minote\src\app\src\main\AndroidManifest.xml:112:17-85
|
||||
132-->D:\minote\src\app\src\main\AndroidManifest.xml:112:25-82
|
||||
133 </intent-filter>
|
||||
134
|
||||
135 <meta-data
|
||||
135-->D:\minote\src\app\src\main\AndroidManifest.xml:115:13-117:58
|
||||
136 android:name="android.appwidget.provider"
|
||||
136-->D:\minote\src\app\src\main\AndroidManifest.xml:116:17-58
|
||||
137 android:resource="@xml/widget_4x_info" />
|
||||
137-->D:\minote\src\app\src\main\AndroidManifest.xml:117:17-55
|
||||
138 </receiver>
|
||||
139 <receiver android:name="net.micode.notes.ui.AlarmInitReceiver" >
|
||||
139-->D:\minote\src\app\src\main\AndroidManifest.xml:134:9-138:20
|
||||
139-->D:\minote\src\app\src\main\AndroidManifest.xml:134:19-55
|
||||
140 <intent-filter>
|
||||
140-->D:\minote\src\app\src\main\AndroidManifest.xml:135:13-137:29
|
||||
141 <action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
141-->D:\minote\src\app\src\main\AndroidManifest.xml:136:17-79
|
||||
141-->D:\minote\src\app\src\main\AndroidManifest.xml:136:25-76
|
||||
142 </intent-filter>
|
||||
143 </receiver>
|
||||
144 <receiver
|
||||
144-->D:\minote\src\app\src\main\AndroidManifest.xml:140:9-143:20
|
||||
145 android:name="net.micode.notes.ui.AlarmReceiver"
|
||||
145-->D:\minote\src\app\src\main\AndroidManifest.xml:141:13-61
|
||||
146 android:process=":remote" >
|
||||
146-->D:\minote\src\app\src\main\AndroidManifest.xml:142:13-38
|
||||
147 </receiver>
|
||||
148
|
||||
149 <activity
|
||||
149-->D:\minote\src\app\src\main\AndroidManifest.xml:145:9-150:20
|
||||
150 android:name="net.micode.notes.ui.AlarmAlertActivity"
|
||||
150-->D:\minote\src\app\src\main\AndroidManifest.xml:146:13-50
|
||||
151 android:label="@string/app_name"
|
||||
151-->D:\minote\src\app\src\main\AndroidManifest.xml:147:13-45
|
||||
152 android:launchMode="singleInstance"
|
||||
152-->D:\minote\src\app\src\main\AndroidManifest.xml:148:13-48
|
||||
153 android:theme="@android:style/Theme.Holo.Wallpaper.NoTitleBar" >
|
||||
153-->D:\minote\src\app\src\main\AndroidManifest.xml:149:13-75
|
||||
154 </activity>
|
||||
155 <activity
|
||||
155-->D:\minote\src\app\src\main\AndroidManifest.xml:152:9-157:20
|
||||
156 android:name="net.micode.notes.ui.NotesPreferenceActivity"
|
||||
156-->D:\minote\src\app\src\main\AndroidManifest.xml:153:13-71
|
||||
157 android:label="@string/preferences_title"
|
||||
157-->D:\minote\src\app\src\main\AndroidManifest.xml:154:13-54
|
||||
158 android:launchMode="singleTop"
|
||||
158-->D:\minote\src\app\src\main\AndroidManifest.xml:155:13-43
|
||||
159 android:theme="@android:style/Theme.Holo.Light" >
|
||||
159-->D:\minote\src\app\src\main\AndroidManifest.xml:156:13-60
|
||||
160 </activity>
|
||||
161
|
||||
162 <service
|
||||
162-->D:\minote\src\app\src\main\AndroidManifest.xml:159:9-162:19
|
||||
163 android:name="net.micode.notes.gtask.remote.GTaskSyncService"
|
||||
163-->D:\minote\src\app\src\main\AndroidManifest.xml:160:13-74
|
||||
164 android:exported="false" >
|
||||
164-->D:\minote\src\app\src\main\AndroidManifest.xml:161:13-37
|
||||
165 </service>
|
||||
166
|
||||
167 <meta-data
|
||||
167-->D:\minote\src\app\src\main\AndroidManifest.xml:164:9-166:52
|
||||
168 android:name="android.app.default_searchable"
|
||||
168-->D:\minote\src\app\src\main\AndroidManifest.xml:165:13-58
|
||||
169 android:value=".ui.NoteEditActivity" />
|
||||
169-->D:\minote\src\app\src\main\AndroidManifest.xml:166:13-49
|
||||
170 <meta-data
|
||||
170-->[com.android.support:appcompat-v7:26.1.0] C:\Users\dsj6789\.gradle\caches\transforms-2\files-2.1\c6eab15e29e7689fa75201e757862466\appcompat-v7-26.1.0\AndroidManifest.xml:26:9-28:38
|
||||
171 android:name="android.support.VERSION"
|
||||
171-->[com.android.support:appcompat-v7:26.1.0] C:\Users\dsj6789\.gradle\caches\transforms-2\files-2.1\c6eab15e29e7689fa75201e757862466\appcompat-v7-26.1.0\AndroidManifest.xml:27:13-51
|
||||
172 android:value="26.1.0" />
|
||||
172-->[com.android.support:appcompat-v7:26.1.0] C:\Users\dsj6789\.gradle\caches\transforms-2\files-2.1\c6eab15e29e7689fa75201e757862466\appcompat-v7-26.1.0\AndroidManifest.xml:28:13-35
|
||||
173 <meta-data
|
||||
173-->[android.arch.lifecycle:runtime:1.0.0] C:\Users\dsj6789\.gradle\caches\transforms-2\files-2.1\a472eeaa4cd57dfc3da8e260e044b12b\runtime-1.0.0\AndroidManifest.xml:25:9-27:47
|
||||
174 android:name="android.arch.lifecycle.VERSION"
|
||||
174-->[android.arch.lifecycle:runtime:1.0.0] C:\Users\dsj6789\.gradle\caches\transforms-2\files-2.1\a472eeaa4cd57dfc3da8e260e044b12b\runtime-1.0.0\AndroidManifest.xml:26:13-58
|
||||
175 android:value="27.0.0-SNAPSHOT" />
|
||||
175-->[android.arch.lifecycle:runtime:1.0.0] C:\Users\dsj6789\.gradle\caches\transforms-2\files-2.1\a472eeaa4cd57dfc3da8e260e044b12b\runtime-1.0.0\AndroidManifest.xml:27:13-44
|
||||
176 </application>
|
||||
177
|
||||
178</manifest>
|
||||
95 </intent-filter>
|
||||
96 <intent-filter>
|
||||
96-->D:\minote\src\app\src\main\AndroidManifest.xml:91:13-94:29
|
||||
97 <action android:name="android.intent.action.SEARCH" />
|
||||
97-->D:\minote\src\app\src\main\AndroidManifest.xml:92:17-71
|
||||
97-->D:\minote\src\app\src\main\AndroidManifest.xml:92:25-68
|
||||
98
|
||||
99 <category android:name="android.intent.category.DEFAULT" />
|
||||
99-->D:\minote\src\app\src\main\AndroidManifest.xml:79:17-76
|
||||
99-->D:\minote\src\app\src\main\AndroidManifest.xml:79:27-73
|
||||
100 </intent-filter>
|
||||
101
|
||||
102 <meta-data
|
||||
102-->D:\minote\src\app\src\main\AndroidManifest.xml:96:13-98:54
|
||||
103 android:name="android.app.searchable"
|
||||
103-->D:\minote\src\app\src\main\AndroidManifest.xml:97:17-54
|
||||
104 android:resource="@xml/searchable" />
|
||||
104-->D:\minote\src\app\src\main\AndroidManifest.xml:98:17-51
|
||||
105 </activity>
|
||||
106
|
||||
107 <provider
|
||||
107-->D:\minote\src\app\src\main\AndroidManifest.xml:101:9-104:43
|
||||
108 android:name="net.micode.notes.data.NotesProvider"
|
||||
108-->D:\minote\src\app\src\main\AndroidManifest.xml:102:13-63
|
||||
109 android:authorities="micode_notes"
|
||||
109-->D:\minote\src\app\src\main\AndroidManifest.xml:103:13-47
|
||||
110 android:multiprocess="true" />
|
||||
110-->D:\minote\src\app\src\main\AndroidManifest.xml:104:13-40
|
||||
111
|
||||
112 <receiver
|
||||
112-->D:\minote\src\app\src\main\AndroidManifest.xml:106:9-118:20
|
||||
113 android:name="net.micode.notes.widget.NoteWidgetProvider_2x"
|
||||
113-->D:\minote\src\app\src\main\AndroidManifest.xml:107:13-57
|
||||
114 android:label="@string/app_widget2x2" >
|
||||
114-->D:\minote\src\app\src\main\AndroidManifest.xml:108:13-50
|
||||
115 <intent-filter>
|
||||
115-->D:\minote\src\app\src\main\AndroidManifest.xml:109:13-113:29
|
||||
116 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
116-->D:\minote\src\app\src\main\AndroidManifest.xml:110:17-84
|
||||
116-->D:\minote\src\app\src\main\AndroidManifest.xml:110:25-81
|
||||
117 <action android:name="android.appwidget.action.APPWIDGET_DELETED" />
|
||||
117-->D:\minote\src\app\src\main\AndroidManifest.xml:111:17-85
|
||||
117-->D:\minote\src\app\src\main\AndroidManifest.xml:111:25-82
|
||||
118 <action android:name="android.intent.action.PRIVACY_MODE_CHANGED" />
|
||||
118-->D:\minote\src\app\src\main\AndroidManifest.xml:112:17-85
|
||||
118-->D:\minote\src\app\src\main\AndroidManifest.xml:112:25-82
|
||||
119 </intent-filter>
|
||||
120
|
||||
121 <meta-data
|
||||
121-->D:\minote\src\app\src\main\AndroidManifest.xml:115:13-117:58
|
||||
122 android:name="android.appwidget.provider"
|
||||
122-->D:\minote\src\app\src\main\AndroidManifest.xml:116:17-58
|
||||
123 android:resource="@xml/widget_2x_info" />
|
||||
123-->D:\minote\src\app\src\main\AndroidManifest.xml:117:17-55
|
||||
124 </receiver>
|
||||
125 <receiver
|
||||
125-->D:\minote\src\app\src\main\AndroidManifest.xml:119:9-132:20
|
||||
126 android:name="net.micode.notes.widget.NoteWidgetProvider_4x"
|
||||
126-->D:\minote\src\app\src\main\AndroidManifest.xml:120:13-57
|
||||
127 android:label="@string/app_widget4x4" >
|
||||
127-->D:\minote\src\app\src\main\AndroidManifest.xml:121:13-50
|
||||
128 <intent-filter>
|
||||
128-->D:\minote\src\app\src\main\AndroidManifest.xml:109:13-113:29
|
||||
129 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
129-->D:\minote\src\app\src\main\AndroidManifest.xml:110:17-84
|
||||
129-->D:\minote\src\app\src\main\AndroidManifest.xml:110:25-81
|
||||
130 <action android:name="android.appwidget.action.APPWIDGET_DELETED" />
|
||||
130-->D:\minote\src\app\src\main\AndroidManifest.xml:111:17-85
|
||||
130-->D:\minote\src\app\src\main\AndroidManifest.xml:111:25-82
|
||||
131 <action android:name="android.intent.action.PRIVACY_MODE_CHANGED" />
|
||||
131-->D:\minote\src\app\src\main\AndroidManifest.xml:112:17-85
|
||||
131-->D:\minote\src\app\src\main\AndroidManifest.xml:112:25-82
|
||||
132 </intent-filter>
|
||||
133
|
||||
134 <meta-data
|
||||
134-->D:\minote\src\app\src\main\AndroidManifest.xml:115:13-117:58
|
||||
135 android:name="android.appwidget.provider"
|
||||
135-->D:\minote\src\app\src\main\AndroidManifest.xml:116:17-58
|
||||
136 android:resource="@xml/widget_4x_info" />
|
||||
136-->D:\minote\src\app\src\main\AndroidManifest.xml:117:17-55
|
||||
137 </receiver>
|
||||
138 <receiver android:name="net.micode.notes.ui.AlarmInitReceiver" >
|
||||
138-->D:\minote\src\app\src\main\AndroidManifest.xml:134:9-138:20
|
||||
138-->D:\minote\src\app\src\main\AndroidManifest.xml:134:19-55
|
||||
139 <intent-filter>
|
||||
139-->D:\minote\src\app\src\main\AndroidManifest.xml:135:13-137:29
|
||||
140 <action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
140-->D:\minote\src\app\src\main\AndroidManifest.xml:136:17-79
|
||||
140-->D:\minote\src\app\src\main\AndroidManifest.xml:136:25-76
|
||||
141 </intent-filter>
|
||||
142 </receiver>
|
||||
143 <receiver
|
||||
143-->D:\minote\src\app\src\main\AndroidManifest.xml:140:9-143:20
|
||||
144 android:name="net.micode.notes.ui.AlarmReceiver"
|
||||
144-->D:\minote\src\app\src\main\AndroidManifest.xml:141:13-61
|
||||
145 android:process=":remote" >
|
||||
145-->D:\minote\src\app\src\main\AndroidManifest.xml:142:13-38
|
||||
146 </receiver>
|
||||
147
|
||||
148 <activity
|
||||
148-->D:\minote\src\app\src\main\AndroidManifest.xml:145:9-150:20
|
||||
149 android:name="net.micode.notes.ui.AlarmAlertActivity"
|
||||
149-->D:\minote\src\app\src\main\AndroidManifest.xml:146:13-50
|
||||
150 android:label="@string/app_name"
|
||||
150-->D:\minote\src\app\src\main\AndroidManifest.xml:147:13-45
|
||||
151 android:launchMode="singleInstance"
|
||||
151-->D:\minote\src\app\src\main\AndroidManifest.xml:148:13-48
|
||||
152 android:theme="@android:style/Theme.Holo.Wallpaper.NoTitleBar" >
|
||||
152-->D:\minote\src\app\src\main\AndroidManifest.xml:149:13-75
|
||||
153 </activity>
|
||||
154 <activity
|
||||
154-->D:\minote\src\app\src\main\AndroidManifest.xml:152:9-157:20
|
||||
155 android:name="net.micode.notes.ui.NotesPreferenceActivity"
|
||||
155-->D:\minote\src\app\src\main\AndroidManifest.xml:153:13-71
|
||||
156 android:label="@string/preferences_title"
|
||||
156-->D:\minote\src\app\src\main\AndroidManifest.xml:154:13-54
|
||||
157 android:launchMode="singleTop"
|
||||
157-->D:\minote\src\app\src\main\AndroidManifest.xml:155:13-43
|
||||
158 android:theme="@android:style/Theme.Holo.Light" >
|
||||
158-->D:\minote\src\app\src\main\AndroidManifest.xml:156:13-60
|
||||
159 </activity>
|
||||
160
|
||||
161 <service
|
||||
161-->D:\minote\src\app\src\main\AndroidManifest.xml:159:9-162:19
|
||||
162 android:name="net.micode.notes.gtask.remote.GTaskSyncService"
|
||||
162-->D:\minote\src\app\src\main\AndroidManifest.xml:160:13-74
|
||||
163 android:exported="false" >
|
||||
163-->D:\minote\src\app\src\main\AndroidManifest.xml:161:13-37
|
||||
164 </service>
|
||||
165
|
||||
166 <meta-data
|
||||
166-->D:\minote\src\app\src\main\AndroidManifest.xml:164:9-166:52
|
||||
167 android:name="android.app.default_searchable"
|
||||
167-->D:\minote\src\app\src\main\AndroidManifest.xml:165:13-58
|
||||
168 android:value=".ui.NoteEditActivity" />
|
||||
168-->D:\minote\src\app\src\main\AndroidManifest.xml:166:13-49
|
||||
169 <meta-data
|
||||
169-->[com.android.support:appcompat-v7:26.1.0] C:\Users\dsj6789\.gradle\caches\transforms-2\files-2.1\c6eab15e29e7689fa75201e757862466\appcompat-v7-26.1.0\AndroidManifest.xml:26:9-28:38
|
||||
170 android:name="android.support.VERSION"
|
||||
170-->[com.android.support:appcompat-v7:26.1.0] C:\Users\dsj6789\.gradle\caches\transforms-2\files-2.1\c6eab15e29e7689fa75201e757862466\appcompat-v7-26.1.0\AndroidManifest.xml:27:13-51
|
||||
171 android:value="26.1.0" />
|
||||
171-->[com.android.support:appcompat-v7:26.1.0] C:\Users\dsj6789\.gradle\caches\transforms-2\files-2.1\c6eab15e29e7689fa75201e757862466\appcompat-v7-26.1.0\AndroidManifest.xml:28:13-35
|
||||
172 <meta-data
|
||||
172-->[android.arch.lifecycle:runtime:1.0.0] C:\Users\dsj6789\.gradle\caches\transforms-2\files-2.1\a472eeaa4cd57dfc3da8e260e044b12b\runtime-1.0.0\AndroidManifest.xml:25:9-27:47
|
||||
173 android:name="android.arch.lifecycle.VERSION"
|
||||
173-->[android.arch.lifecycle:runtime:1.0.0] C:\Users\dsj6789\.gradle\caches\transforms-2\files-2.1\a472eeaa4cd57dfc3da8e260e044b12b\runtime-1.0.0\AndroidManifest.xml:26:13-58
|
||||
174 android:value="27.0.0-SNAPSHOT" />
|
||||
174-->[android.arch.lifecycle:runtime:1.0.0] C:\Users\dsj6789\.gradle\caches\transforms-2\files-2.1\a472eeaa4cd57dfc3da8e260e044b12b\runtime-1.0.0\AndroidManifest.xml:27:13-44
|
||||
175 </application>
|
||||
176
|
||||
177</manifest>
|
||||
|
|
|
@ -52,8 +52,7 @@
|
|||
android:debuggable="true"
|
||||
android:icon="@drawable/icon_app"
|
||||
android:label="@string/app_name"
|
||||
android:supportsRtl="true"
|
||||
android:testOnly="true" >
|
||||
android:supportsRtl="true" >
|
||||
<activity
|
||||
android:name="net.micode.notes.ui.NotesListActivity"
|
||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
|
@ -69,7 +68,7 @@
|
|||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name="net.micode.notes.audiodemo.VoiceActivity"
|
||||
android:name="net.micode.notes.audiorecord.VoiceActivity"
|
||||
android:theme="@style/AppTheme" >
|
||||
</activity>
|
||||
<activity
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -179,12 +179,12 @@ category#android.intent.category.LAUNCHER
|
|||
ADDED from D:\minote\src\app\src\main\AndroidManifest.xml:61:17-77
|
||||
android:name
|
||||
ADDED from D:\minote\src\app\src\main\AndroidManifest.xml:61:27-74
|
||||
activity#net.micode.notes.audiodemo.VoiceActivity
|
||||
activity#net.micode.notes.audiorecord.VoiceActivity
|
||||
ADDED from D:\minote\src\app\src\main\AndroidManifest.xml:65:9-68:20
|
||||
android:theme
|
||||
ADDED from D:\minote\src\app\src\main\AndroidManifest.xml:67:13-44
|
||||
android:name
|
||||
ADDED from D:\minote\src\app\src\main\AndroidManifest.xml:66:13-52
|
||||
ADDED from D:\minote\src\app\src\main\AndroidManifest.xml:66:13-54
|
||||
activity#net.micode.notes.ui.NoteEditActivity
|
||||
ADDED from D:\minote\src\app\src\main\AndroidManifest.xml:70:9-99:20
|
||||
android:launchMode
|
||||
|
|
|
@ -25,9 +25,10 @@ import android.util.Log;
|
|||
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
*该类实现了查找联系人以及新建联系人的方法,实现了对联系人的建模
|
||||
* */
|
||||
|
||||
/*
|
||||
* 该类实现了查找联系人以及新建联系人的方法,实现了对联系人的建模
|
||||
* */
|
||||
public class Contact {
|
||||
private static HashMap<String, String> sContactCache;
|
||||
//用于记入日志的标识
|
||||
|
@ -41,16 +42,16 @@ public class Contact {
|
|||
+ " FROM phone_lookup"
|
||||
+ " WHERE min_match = '+')";
|
||||
|
||||
/**
|
||||
/*
|
||||
* 该方法实现了查找联系人号码以及新建联系人
|
||||
* */
|
||||
public static String getContact(Context context, String phoneNumber) {
|
||||
//如果哈希表为空,重新为sContactCache申请内存
|
||||
//哈希表为空,重新为sContactCache申请内存
|
||||
if(sContactCache == null) {
|
||||
sContactCache = new HashMap<String, String>();
|
||||
}
|
||||
|
||||
//如果找到电话号码,则返回电话号码对应的字符串
|
||||
//找到电话号码,则返回电话号码对应的字符串
|
||||
if(sContactCache.containsKey(phoneNumber)) {
|
||||
return sContactCache.get(phoneNumber);
|
||||
}
|
||||
|
@ -64,7 +65,7 @@ public class Contact {
|
|||
selection,
|
||||
new String[] { phoneNumber },
|
||||
null);
|
||||
//cursor != null表示找到,moveToFirst将cursor移动到第一条记录上
|
||||
//找到则moveToFirst将cursor移动到第一条记录上
|
||||
if (cursor != null && cursor.moveToFirst()) {
|
||||
try {
|
||||
String name = cursor.getString(0);
|
||||
|
|
|
@ -31,12 +31,13 @@ public class Notes {
|
|||
//用于标识类型-系统文件
|
||||
public static final int TYPE_SYSTEM = 2;
|
||||
|
||||
/**
|
||||
|
||||
/*
|
||||
* Following IDs are system folders' identifiers
|
||||
* {@link Notes#ID_ROOT_FOLDER } is default folder
|
||||
* {@link Notes#ID_TEMPARAY_FOLDER } is for notes belonging no folder
|
||||
* {@link Notes#ID_CALL_RECORD_FOLDER} is to store call records
|
||||
*/
|
||||
* */
|
||||
public static final int ID_ROOT_FOLDER = 0;//根文件夹标识
|
||||
public static final int ID_TEMPARAY_FOLDER = -1;//临时文件夹标识
|
||||
public static final int ID_CALL_RECORD_FOLDER = -2;//通话记录文件夹标识
|
||||
|
@ -48,10 +49,12 @@ public class Notes {
|
|||
public static final String INTENT_EXTRA_WIDGET_TYPE = "net.micode.notes.widget_type";
|
||||
public static final String INTENT_EXTRA_FOLDER_ID = "net.micode.notes.folder_id";
|
||||
public static final String INTENT_EXTRA_CALL_DATE = "net.micode.notes.call_date";
|
||||
|
||||
public static final int TYPE_WIDGET_INVALIDE = -1;//用于标识widget无效
|
||||
public static final int TYPE_WIDGET_2X = 0;//用于标识使用的是2X大小的widget
|
||||
public static final int TYPE_WIDGET_4X = 1;//用于标识使用的是4X大小的widget
|
||||
//用于标识widget无效
|
||||
public static final int TYPE_WIDGET_INVALIDE = -1;
|
||||
//用于标识使用的是2X大小的widget
|
||||
public static final int TYPE_WIDGET_2X = 0;
|
||||
//用于标识使用的是4X大小的widget
|
||||
public static final int TYPE_WIDGET_4X = 1;
|
||||
|
||||
public static class DataConstants {
|
||||
public static final String NOTE = TextNote.CONTENT_ITEM_TYPE;
|
||||
|
@ -66,192 +69,192 @@ public class Notes {
|
|||
//获取数据表的URI,用于查找数据
|
||||
public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data");
|
||||
|
||||
/**
|
||||
*该类定义了一系列接口,与便签数据表,存于数据库
|
||||
*/
|
||||
/*
|
||||
* 该接口为小米便签的数据库列
|
||||
* */
|
||||
public interface NoteColumns {
|
||||
/**
|
||||
/*
|
||||
* The unique ID for a row
|
||||
* <P> Type: INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
public static final String ID = "_id";
|
||||
|
||||
/**
|
||||
/*
|
||||
* The parent's id for note or folder
|
||||
* <P> Type: INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
public static final String PARENT_ID = "parent_id";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Created date for note or folder
|
||||
* <P> Type: INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
//便签或者文件夹的创建时间
|
||||
public static final String CREATED_DATE = "created_date";
|
||||
|
||||
/**
|
||||
/*
|
||||
* 最近修改时间
|
||||
* <P> Type: INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
public static final String MODIFIED_DATE = "modified_date";
|
||||
|
||||
|
||||
/**
|
||||
/*
|
||||
* 响铃时间
|
||||
* <P> Type: INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
public static final String ALERTED_DATE = "alert_date";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Folder's name or text content of note
|
||||
* <P> Type: TEXT </P>
|
||||
*/
|
||||
* */
|
||||
public static final String SNIPPET = "snippet";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Note's widget id
|
||||
* <P> Type: INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
public static final String WIDGET_ID = "widget_id";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Note's widget type
|
||||
* <P> Type: INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
public static final String WIDGET_TYPE = "widget_type";
|
||||
|
||||
/**
|
||||
/*
|
||||
* 便签背景色ID
|
||||
* <P> Type: INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
public static final String BG_COLOR_ID = "bg_color_id";
|
||||
|
||||
/**
|
||||
/*
|
||||
* For text note, it doesn't has attachment, for multi-media
|
||||
* note, it has at least one attachment(附件)
|
||||
* <P> Type: INTEGER </P>
|
||||
*/
|
||||
* */
|
||||
public static final String HAS_ATTACHMENT = "has_attachment";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Folder's count of notes
|
||||
* <P> Type: INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
public static final String NOTES_COUNT = "notes_count";
|
||||
|
||||
/**
|
||||
/*
|
||||
* The file type: folder or note
|
||||
* <P> Type: INTEGER </P>
|
||||
*/
|
||||
* */
|
||||
public static final String TYPE = "type";
|
||||
|
||||
/**
|
||||
/*
|
||||
* The last sync id
|
||||
* <P> Type: INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
public static final String SYNC_ID = "sync_id";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Sign to indicate local modified or not
|
||||
* 1 - local modified
|
||||
* 0 - not local modified
|
||||
* <P> Type: INTEGER </P>
|
||||
*/
|
||||
* */
|
||||
public static final String LOCAL_MODIFIED = "local_modified";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Original parent id before moving into temporary folder
|
||||
* <P> Type : INTEGER </P>
|
||||
*/
|
||||
* */
|
||||
public static final String ORIGIN_PARENT_ID = "origin_parent_id";
|
||||
|
||||
/**
|
||||
/*
|
||||
* The gtask id
|
||||
* <P> Type : TEXT </P>
|
||||
*/
|
||||
* */
|
||||
public static final String GTASK_ID = "gtask_id";
|
||||
|
||||
/**
|
||||
/*
|
||||
* 代码版本
|
||||
* <P> Type : INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
public static final String VERSION = "version";
|
||||
}
|
||||
|
||||
/**
|
||||
* 公用接口类
|
||||
*/
|
||||
/*
|
||||
* 公用接口
|
||||
* */
|
||||
public interface DataColumns {
|
||||
/**
|
||||
/*
|
||||
* The unique ID for a row
|
||||
* <P> Type: INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
public static final String ID = "_id";
|
||||
|
||||
/**
|
||||
/*
|
||||
* The MIME type of the item represented by this row.
|
||||
* <P> Type: Text </P>
|
||||
*/
|
||||
* */
|
||||
public static final String MIME_TYPE = "mime_type";//todo:what is mime type?
|
||||
|
||||
/**
|
||||
/*
|
||||
* 数据所属便签的ID
|
||||
* <P> Type: INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
public static final String NOTE_ID = "note_id";
|
||||
|
||||
/**
|
||||
/*
|
||||
* note or folder的创建时间
|
||||
* <P> Type: INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
public static final String CREATED_DATE = "created_date";
|
||||
|
||||
/**
|
||||
/*
|
||||
* 最近一次修改的时间
|
||||
* <P> Type: INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
public static final String MODIFIED_DATE = "modified_date";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Data's content
|
||||
* <P> Type: TEXT </P>
|
||||
*/
|
||||
* */
|
||||
public static final String CONTENT = "content";
|
||||
|
||||
|
||||
/**
|
||||
/*
|
||||
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
|
||||
* integer data type
|
||||
* <P> Type: INTEGER </P>
|
||||
*/
|
||||
* */
|
||||
public static final String DATA1 = "data1";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
|
||||
* integer data type
|
||||
* <P> Type: INTEGER </P>
|
||||
*/
|
||||
* */
|
||||
public static final String DATA2 = "data2";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
|
||||
* TEXT data type
|
||||
* <P> Type: TEXT </P>
|
||||
*/
|
||||
* */
|
||||
public static final String DATA3 = "data3";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
|
||||
* TEXT data type
|
||||
* <P> Type: TEXT </P>
|
||||
*/
|
||||
* */
|
||||
public static final String DATA4 = "data4";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
|
||||
* TEXT data type
|
||||
* <P> Type: TEXT </P>
|
||||
*/
|
||||
* */
|
||||
public static final String DATA5 = "data5";
|
||||
}
|
||||
|
||||
|
@ -259,11 +262,11 @@ public class Notes {
|
|||
* 该类是对接口DataColumns的实现,没有声明方法
|
||||
* */
|
||||
public static final class TextNote implements DataColumns {
|
||||
/**
|
||||
/*
|
||||
* Mode to indicate the text in check list mode or not
|
||||
* <P> Type: Integer
|
||||
* 1:check list mode 0: normal mode </P>
|
||||
*/
|
||||
* */
|
||||
public static final String MODE = DATA1;
|
||||
|
||||
public static final int MODE_CHECK_LIST = 1;
|
||||
|
@ -275,27 +278,29 @@ public class Notes {
|
|||
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note");
|
||||
}
|
||||
|
||||
/**
|
||||
* 该类实现DataColumns接口类,属性值有电话记录的电话号码以及呼叫时间
|
||||
*/
|
||||
/*
|
||||
* 该类继承DataColumns接口,属性值有电话记录的电话号码以及呼叫时间
|
||||
* */
|
||||
public static final class CallNote implements DataColumns {
|
||||
/**
|
||||
/*
|
||||
* 该记录的呼叫时间
|
||||
* <P> Type: INTEGER (long) </P>
|
||||
*/
|
||||
* */
|
||||
public static final String CALL_DATE = DATA1;
|
||||
|
||||
/**
|
||||
/*
|
||||
* 该记录的电话号码
|
||||
* <P> Type: TEXT </P>
|
||||
*/
|
||||
* */
|
||||
public static final String PHONE_NUMBER = DATA3;
|
||||
|
||||
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/call_note";
|
||||
|
||||
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/call_note";
|
||||
|
||||
//call_note数据表的uri
|
||||
/*
|
||||
* call_note数据表的uri
|
||||
* */
|
||||
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,10 +27,10 @@ import net.micode.notes.data.Notes.DataConstants;
|
|||
import net.micode.notes.data.Notes.NoteColumns;
|
||||
|
||||
|
||||
/**
|
||||
* 该类继承了SQLiteOpenHelper类,对SQLlite数据库进行操作
|
||||
* 提供了便签访问数据库
|
||||
*/
|
||||
/*
|
||||
* 该类继承了SQLiteOpenHelper类,对SQLlite数据库进行操作
|
||||
* 提供了便签访问数据库
|
||||
* */
|
||||
public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
||||
//数据库名称
|
||||
private static final String DB_NAME = "note.db";
|
||||
|
@ -38,7 +38,9 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
//数据库版本
|
||||
private static final int DB_VERSION = 4;
|
||||
|
||||
//数据库表项
|
||||
/*
|
||||
* 数据库表项接口
|
||||
* */
|
||||
public interface TABLE {
|
||||
public static final String NOTE = "note";
|
||||
|
||||
|
@ -49,28 +51,32 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
|
||||
private static NotesDatabaseHelper mInstance;
|
||||
|
||||
//创建SQL便签表表项,String类型
|
||||
/*
|
||||
* 创建SQL便签表表项,String类型
|
||||
* */
|
||||
private static final String CREATE_NOTE_TABLE_SQL =
|
||||
"CREATE TABLE " + TABLE.NOTE + "(" +
|
||||
NoteColumns.ID + " INTEGER PRIMARY KEY," +
|
||||
NoteColumns.PARENT_ID + " INTEGER NOT NULL DEFAULT 0," +
|
||||
NoteColumns.ALERTED_DATE + " INTEGER NOT NULL DEFAULT 0," +
|
||||
NoteColumns.BG_COLOR_ID + " INTEGER NOT NULL DEFAULT 0," +
|
||||
NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +//创建时间
|
||||
NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +
|
||||
NoteColumns.HAS_ATTACHMENT + " INTEGER NOT NULL DEFAULT 0," +
|
||||
NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +//最近修改时间
|
||||
NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +
|
||||
NoteColumns.NOTES_COUNT + " INTEGER NOT NULL DEFAULT 0," +
|
||||
NoteColumns.SNIPPET + " TEXT NOT NULL DEFAULT ''," +
|
||||
NoteColumns.TYPE + " INTEGER NOT NULL DEFAULT 0," +
|
||||
NoteColumns.WIDGET_ID + " INTEGER NOT NULL DEFAULT 0," +
|
||||
NoteColumns.WIDGET_TYPE + " INTEGER NOT NULL DEFAULT -1," +
|
||||
NoteColumns.SYNC_ID + " INTEGER NOT NULL DEFAULT 0," +//同步id
|
||||
NoteColumns.LOCAL_MODIFIED + " INTEGER NOT NULL DEFAULT 0," +//判断是否本地修改
|
||||
NoteColumns.SYNC_ID + " INTEGER NOT NULL DEFAULT 0," +
|
||||
NoteColumns.LOCAL_MODIFIED + " INTEGER NOT NULL DEFAULT 0," +
|
||||
NoteColumns.ORIGIN_PARENT_ID + " INTEGER NOT NULL DEFAULT 0," +
|
||||
NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''," +
|
||||
NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0" +
|
||||
")";
|
||||
//创建SQL数据表表项,String类型
|
||||
/*
|
||||
* 创建SQL数据表表项,String类型
|
||||
* */
|
||||
private static final String CREATE_DATA_TABLE_SQL =
|
||||
"CREATE TABLE " + TABLE.DATA + "(" +
|
||||
DataColumns.ID + " INTEGER PRIMARY KEY," +
|
||||
|
@ -90,9 +96,9 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
"CREATE INDEX IF NOT EXISTS note_id_index ON " +
|
||||
TABLE.DATA + "(" + DataColumns.NOTE_ID + ");";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Increase folder's note count when move note to the folder
|
||||
*/
|
||||
* */
|
||||
private static final String NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER =
|
||||
"CREATE TRIGGER increase_folder_count_on_update "+
|
||||
" AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE +
|
||||
|
@ -102,10 +108,10 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
" WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" +
|
||||
" END";
|
||||
|
||||
/**
|
||||
/*
|
||||
* 当从文件夹中移除便签时,减少便签数量
|
||||
* SQL语句,对数据库进行操作
|
||||
*/
|
||||
* */
|
||||
private static final String NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER =
|
||||
"CREATE TRIGGER decrease_folder_count_on_update " +
|
||||
" AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE +
|
||||
|
@ -116,9 +122,9 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
" AND " + NoteColumns.NOTES_COUNT + ">0" + ";" +
|
||||
" END";
|
||||
|
||||
/**
|
||||
/*
|
||||
* 当在文件夹中插入便签时,增加便签数量
|
||||
*/
|
||||
* */
|
||||
private static final String NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER =
|
||||
"CREATE TRIGGER increase_folder_count_on_insert " +
|
||||
" AFTER INSERT ON " + TABLE.NOTE +
|
||||
|
@ -128,9 +134,9 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
" WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" +
|
||||
" END";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Decrease folder's note count when delete note from the folder
|
||||
*/
|
||||
* */
|
||||
private static final String NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER =
|
||||
"CREATE TRIGGER decrease_folder_count_on_delete " +
|
||||
" AFTER DELETE ON " + TABLE.NOTE +
|
||||
|
@ -141,9 +147,9 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
" AND " + NoteColumns.NOTES_COUNT + ">0;" +
|
||||
" END";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Update note's content when insert data with type {@link DataConstants#NOTE}
|
||||
*/
|
||||
* */
|
||||
private static final String DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER =
|
||||
"CREATE TRIGGER update_note_content_on_insert " +
|
||||
" AFTER INSERT ON " + TABLE.DATA +
|
||||
|
@ -154,9 +160,9 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
" WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" +
|
||||
" END";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Update note's content when data with {@link DataConstants#NOTE} type has changed
|
||||
*/
|
||||
* */
|
||||
private static final String DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER =
|
||||
"CREATE TRIGGER update_note_content_on_update " +
|
||||
" AFTER UPDATE ON " + TABLE.DATA +
|
||||
|
@ -167,9 +173,9 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
" WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" +
|
||||
" END";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Update note's content when data with {@link DataConstants#NOTE} type has deleted
|
||||
*/
|
||||
* */
|
||||
private static final String DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER =
|
||||
"CREATE TRIGGER update_note_content_on_delete " +
|
||||
" AFTER delete ON " + TABLE.DATA +
|
||||
|
@ -180,9 +186,9 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
" WHERE " + NoteColumns.ID + "=old." + DataColumns.NOTE_ID + ";" +
|
||||
" END";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Delete datas belong to note which has been deleted
|
||||
*/
|
||||
* */
|
||||
private static final String NOTE_DELETE_DATA_ON_DELETE_TRIGGER =
|
||||
"CREATE TRIGGER delete_data_on_delete " +
|
||||
" AFTER DELETE ON " + TABLE.NOTE +
|
||||
|
@ -191,9 +197,9 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
" WHERE " + DataColumns.NOTE_ID + "=old." + NoteColumns.ID + ";" +
|
||||
" END";
|
||||
|
||||
/**
|
||||
/*
|
||||
* Delete notes belong to folder which has been deleted
|
||||
*/
|
||||
* */
|
||||
private static final String FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER =
|
||||
"CREATE TRIGGER folder_delete_notes_on_delete " +
|
||||
" AFTER DELETE ON " + TABLE.NOTE +
|
||||
|
@ -202,9 +208,9 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
" WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" +
|
||||
" END";
|
||||
|
||||
/**
|
||||
/*
|
||||
* 把文件夹中已经扔到垃圾文件夹的便签删除
|
||||
*/
|
||||
* */
|
||||
private static final String FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER =
|
||||
"CREATE TRIGGER folder_move_notes_on_trash " +
|
||||
" AFTER UPDATE ON " + TABLE.NOTE +
|
||||
|
@ -215,9 +221,9 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
" WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" +
|
||||
" END";
|
||||
|
||||
/**
|
||||
* 构造函数,调用父类的构造函数
|
||||
*/
|
||||
/*
|
||||
* 调用父类的构造函数
|
||||
* */
|
||||
public NotesDatabaseHelper(Context context) {
|
||||
super(context, DB_NAME, null, DB_VERSION);
|
||||
}
|
||||
|
@ -225,7 +231,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
/*
|
||||
* 向数据库中添加note表项的公有方法
|
||||
* @ db SQL数据库
|
||||
*/
|
||||
* */
|
||||
public void createNoteTable(SQLiteDatabase db) {
|
||||
db.execSQL(CREATE_NOTE_TABLE_SQL);//向数据库中添加note
|
||||
reCreateNoteTableTriggers(db);
|
||||
|
@ -235,7 +241,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
}
|
||||
|
||||
/*
|
||||
* 如果便签被更改,重建数据库
|
||||
* 重建数据库
|
||||
* @ db SQL数据库
|
||||
* */
|
||||
private void reCreateNoteTableTriggers(SQLiteDatabase db) {
|
||||
|
@ -269,33 +275,33 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
private void createSystemFolder(SQLiteDatabase db) {
|
||||
ContentValues values = new ContentValues();
|
||||
|
||||
/**
|
||||
/*
|
||||
* call record foler for call notes
|
||||
*/
|
||||
* */
|
||||
values.put(NoteColumns.ID, Notes.ID_CALL_RECORD_FOLDER);
|
||||
values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
|
||||
db.insert(TABLE.NOTE, null, values);
|
||||
|
||||
/**
|
||||
/*
|
||||
* root folder which is default folder
|
||||
*/
|
||||
* */
|
||||
values.clear();
|
||||
values.put(NoteColumns.ID, Notes.ID_ROOT_FOLDER);
|
||||
values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
|
||||
//向数据库中插入便签表与内容
|
||||
db.insert(TABLE.NOTE, null, values);
|
||||
|
||||
/**
|
||||
/*
|
||||
* 用于移动便签的临时数据库
|
||||
*/
|
||||
* */
|
||||
values.clear();
|
||||
values.put(NoteColumns.ID, Notes.ID_TEMPARAY_FOLDER);
|
||||
values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
|
||||
db.insert(TABLE.NOTE, null, values);
|
||||
|
||||
/**
|
||||
/*
|
||||
* 创建垃圾文件夹
|
||||
*/
|
||||
* */
|
||||
values.clear();
|
||||
values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER);
|
||||
values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
|
||||
|
@ -339,22 +345,22 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
return mInstance;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* 重写onCreate方法,新建数据库时调用,创建note、data数据表
|
||||
* @ db 数据库
|
||||
*/
|
||||
* */
|
||||
@Override
|
||||
public void onCreate(SQLiteDatabase db) {
|
||||
createNoteTable(db);
|
||||
createDataTable(db);
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* 重写onUpgrade方法,数据库版本改变时调用
|
||||
* @ db 数据库
|
||||
* @ oldVersion 旧版本号
|
||||
* @ newVersion 新版本号
|
||||
*/
|
||||
* */
|
||||
@Override
|
||||
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
||||
boolean reCreateTriggers = false;
|
||||
|
@ -389,10 +395,10 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* 将数据库版本升至V2
|
||||
* 改动:在数据库中建立了note表与data表
|
||||
*/
|
||||
* */
|
||||
private void upgradeToV2(SQLiteDatabase db) {
|
||||
db.execSQL("DROP TABLE IF EXISTS " + TABLE.NOTE);
|
||||
db.execSQL("DROP TABLE IF EXISTS " + TABLE.DATA);
|
||||
|
@ -400,12 +406,13 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
createDataTable(db);
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* 将数据库版本升至V3
|
||||
* 改动:1.移除未使用的触发器
|
||||
* 改动:
|
||||
* 1.移除未使用的触发器
|
||||
* 2.添加gtask id表
|
||||
* 3.添加垃圾文件夹
|
||||
*/
|
||||
* */
|
||||
private void upgradeToV3(SQLiteDatabase db) {
|
||||
// drop unused triggers
|
||||
db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_insert");
|
||||
|
@ -421,10 +428,10 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
|
|||
db.insert(TABLE.NOTE, null, values);
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* 将数据库版本升至V4
|
||||
* 改动:添加note
|
||||
*/
|
||||
* */
|
||||
private void upgradeToV4(SQLiteDatabase db) {
|
||||
db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.VERSION
|
||||
+ " INTEGER NOT NULL DEFAULT 0");
|
||||
|
|
|
@ -34,9 +34,9 @@ import net.micode.notes.data.Notes.DataColumns;
|
|||
import net.micode.notes.data.Notes.NoteColumns;
|
||||
import net.micode.notes.data.NotesDatabaseHelper.TABLE;
|
||||
|
||||
/**
|
||||
*定义便签提供者类,实现了在数据库中的便签的增删查改
|
||||
*/
|
||||
/*
|
||||
* 定义便签提供者类,实现了在数据库中的便签的增删查改
|
||||
* */
|
||||
public class NotesProvider extends ContentProvider {
|
||||
private static final UriMatcher mMatcher;
|
||||
|
||||
|
@ -71,10 +71,10 @@ public class NotesProvider extends ContentProvider {
|
|||
mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY + "/*", URI_SEARCH_SUGGEST);
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* x'0A' represents the '\n' character in sqlite. For title and content in the search result,
|
||||
* we will trim '\n' and white space in order to show more information.
|
||||
*/
|
||||
* */
|
||||
private static final String NOTES_SEARCH_PROJECTION = NoteColumns.ID + ","
|
||||
+ NoteColumns.ID + " AS " + SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA + ","
|
||||
+ "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_1 + ","
|
||||
|
@ -89,8 +89,10 @@ public class NotesProvider extends ContentProvider {
|
|||
+ " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER
|
||||
+ " AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE;
|
||||
|
||||
//重写onCreate方法,实例化类时调用
|
||||
//获取便签数据库
|
||||
/*
|
||||
* 重写onCreate方法,实例化类时调用
|
||||
* 获取便签数据库
|
||||
* */
|
||||
@Override
|
||||
public boolean onCreate() {
|
||||
//实例化NotesDatabaseHelper,实现对数据库的使用
|
||||
|
@ -99,8 +101,10 @@ public class NotesProvider extends ContentProvider {
|
|||
return true;
|
||||
}
|
||||
|
||||
//重写查询方法
|
||||
//@ selection 查询条件,之前的字符串常量
|
||||
/*
|
||||
* 重写查询方法
|
||||
* @ selection 查询条件,之前的字符串常量
|
||||
* */
|
||||
@Override
|
||||
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
|
||||
String sortOrder) {
|
||||
|
@ -179,7 +183,9 @@ public class NotesProvider extends ContentProvider {
|
|||
return c;
|
||||
}
|
||||
|
||||
//该方法实现了向特定uri地址插入内容
|
||||
/*
|
||||
* 该方法实现了向特定uri地址插入内容
|
||||
* */
|
||||
@Override
|
||||
public Uri insert(Uri uri, ContentValues values) {
|
||||
//以写入方式打开数据库
|
||||
|
@ -198,8 +204,7 @@ public class NotesProvider extends ContentProvider {
|
|||
if (values.containsKey(DataColumns.NOTE_ID)) {
|
||||
noteId = values.getAsLong(DataColumns.NOTE_ID);
|
||||
} else {
|
||||
//如果不存在,报错
|
||||
//将调试信息写入日志
|
||||
//如果不存在,报错将调试信息写入日志
|
||||
Log.d(TAG, "Wrong data format without note id:" + values.toString());
|
||||
}
|
||||
insertedId = dataId = db.insert(TABLE.DATA, null, values);
|
||||
|
@ -223,7 +228,9 @@ public class NotesProvider extends ContentProvider {
|
|||
return ContentUris.withAppendedId(uri, insertedId);
|
||||
}
|
||||
|
||||
//重写删除方法,根据选择条件删除指定内容
|
||||
/*
|
||||
* 重写删除方法,根据选择条件删除指定内容
|
||||
* */
|
||||
@Override
|
||||
public int delete(Uri uri, String selection, String[] selectionArgs) {
|
||||
int count = 0;
|
||||
|
@ -236,7 +243,7 @@ public class NotesProvider extends ContentProvider {
|
|||
case URI_NOTE:
|
||||
//选择条件
|
||||
selection = "(" + selection + ") AND " + NoteColumns.ID + ">0 ";
|
||||
//count - 删除的便签数量
|
||||
//删除的便签数量
|
||||
count = db.delete(TABLE.NOTE, selection, selectionArgs);
|
||||
break;
|
||||
case URI_NOTE_ITEM:
|
||||
|
@ -277,20 +284,20 @@ public class NotesProvider extends ContentProvider {
|
|||
return count;
|
||||
}
|
||||
|
||||
//重写更新方法,更新数据库中的内容
|
||||
/*
|
||||
* 重写更新方法,更新数据库中的内容
|
||||
* */
|
||||
@Override
|
||||
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
|
||||
int count = 0;
|
||||
String id = null;
|
||||
SQLiteDatabase db = mHelper.getWritableDatabase();
|
||||
//创建是否更新标识
|
||||
//false - 未更新
|
||||
//创建是否更新标识,false表示未更新
|
||||
boolean updateData = false;
|
||||
switch (mMatcher.match(uri)) {
|
||||
case URI_NOTE:
|
||||
increaseNoteVersion(-1, selection, selectionArgs);
|
||||
//更新数据库
|
||||
//count - 发生改动的数量
|
||||
//发生改动的数量
|
||||
count = db.update(TABLE.NOTE, values, selection, selectionArgs);
|
||||
break;
|
||||
case URI_NOTE_ITEM:
|
||||
|
@ -333,7 +340,9 @@ public class NotesProvider extends ContentProvider {
|
|||
return (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')' : "");
|
||||
}
|
||||
|
||||
//私有方法,更新便签版本
|
||||
/*
|
||||
* 私有方法,更新便签版本
|
||||
* */
|
||||
private void increaseNoteVersion(long id, String selection, String[] selectionArgs) {
|
||||
StringBuilder sql = new StringBuilder(120);
|
||||
sql.append("UPDATE ");
|
||||
|
@ -342,8 +351,7 @@ public class NotesProvider extends ContentProvider {
|
|||
sql.append(NoteColumns.VERSION);
|
||||
sql.append("=" + NoteColumns.VERSION + "+1 ");
|
||||
|
||||
//id > 0 判断是否为系统文件夹
|
||||
//id < 0 系统文件夹
|
||||
//判断是否为系统文件夹
|
||||
if (id > 0 || !TextUtils.isEmpty(selection)) {
|
||||
sql.append(" WHERE ");
|
||||
}
|
||||
|
|
|
@ -25,8 +25,8 @@ import org.json.JSONException;
|
|||
import org.json.JSONObject;
|
||||
|
||||
/*
|
||||
关于同步任务的元数据
|
||||
*/
|
||||
* 关于同步任务的元数据
|
||||
* */
|
||||
public class MetaData extends Task {
|
||||
private final static String TAG = MetaData.class.getSimpleName();
|
||||
|
||||
|
@ -56,13 +56,12 @@ public class MetaData extends Task {
|
|||
}
|
||||
|
||||
@Override
|
||||
|
||||
public void setContentByRemoteJSON(JSONObject js) {
|
||||
//super调用父类
|
||||
super.setContentByRemoteJSON(js);
|
||||
if (getNotes() != null) {
|
||||
try {
|
||||
//将trim()去掉两端无意义字符后的字符串转化为JSON格式
|
||||
//trim()去掉两端无意义字符后的字符串转化为JSON格式
|
||||
JSONObject metaInfo = new JSONObject(getNotes().trim());
|
||||
mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID);
|
||||
} catch (JSONException e) {
|
||||
|
@ -71,12 +70,7 @@ public class MetaData extends Task {
|
|||
}
|
||||
}
|
||||
}
|
||||
/*override
|
||||
重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。
|
||||
即外壳不变,核心重写!
|
||||
重写的好处在于子类可以根据需要,定义特定于自己的行为。
|
||||
也就是说子类能够根据需要实现父类的方法。
|
||||
*/
|
||||
|
||||
@Override
|
||||
public void setContentByLocalJSON(JSONObject js) {
|
||||
// this function should not be called
|
||||
|
|
|
@ -67,7 +67,7 @@ public abstract class Node {
|
|||
public abstract JSONObject getLocalJSONFromContent();
|
||||
//获得同步动作
|
||||
public abstract int getSyncAction(Cursor c);
|
||||
//下面是一系列构造初始化
|
||||
|
||||
public void setGid(String gid) {
|
||||
this.mGid = gid;
|
||||
}
|
||||
|
|
|
@ -35,8 +35,8 @@ import org.json.JSONException;
|
|||
import org.json.JSONObject;
|
||||
|
||||
/*
|
||||
同步任务基本数据
|
||||
*/
|
||||
* 同步任务基本数据
|
||||
* */
|
||||
public class SqlData {
|
||||
private static final String TAG = SqlData.class.getSimpleName();
|
||||
//设置初始ID
|
||||
|
@ -71,15 +71,13 @@ public class SqlData {
|
|||
private long mDataContentData1;
|
||||
|
||||
private String mDataContentData3;
|
||||
/*ContentValues
|
||||
就是用于保存一些数据(string/boolean/byte/double/float/int/long/short …)信息,
|
||||
这些信息可以被数据库操作时方便地使用。
|
||||
ContentValues 和 HashTable 类似,都是一种存储的机制,
|
||||
但是两者最大的区别就在于:ContentValues 只能存储基本类型的数据,
|
||||
像string、int之类的,不能存储对象这种东西,而HashTable却可以存储对象。
|
||||
*/
|
||||
/*
|
||||
* ContentValues用于保存数据(string/boolean/byte/double/float/int/long/short …)信息,
|
||||
* */
|
||||
private ContentValues mDiffDataValues;
|
||||
//构造函数两种
|
||||
/*
|
||||
* 构造函数
|
||||
* */
|
||||
public SqlData(Context context) {
|
||||
mContentResolver = context.getContentResolver();
|
||||
mIsCreate = true;
|
||||
|
@ -97,7 +95,9 @@ public class SqlData {
|
|||
loadFromCursor(c);
|
||||
mDiffDataValues = new ContentValues();
|
||||
}
|
||||
//根据cursor确定属性参数
|
||||
/*
|
||||
* 根据cursor确定属性参数
|
||||
* */
|
||||
private void loadFromCursor(Cursor c) {
|
||||
mDataId = c.getLong(DATA_ID_COLUMN);
|
||||
mDataMimeType = c.getString(DATA_MIME_TYPE_COLUMN);
|
||||
|
@ -105,7 +105,9 @@ public class SqlData {
|
|||
mDataContentData1 = c.getLong(DATA_CONTENT_DATA_1_COLUMN);
|
||||
mDataContentData3 = c.getString(DATA_CONTENT_DATA_3_COLUMN);
|
||||
}
|
||||
//根据JSON的内容设置属性
|
||||
/*
|
||||
* 根据JSON的内容设置属性
|
||||
* */
|
||||
public void setContent(JSONObject js) throws JSONException {
|
||||
long dataId = js.has(DataColumns.ID) ? js.getLong(DataColumns.ID) : INVALID_ID;
|
||||
if (mIsCreate || mDataId != dataId) {
|
||||
|
@ -138,7 +140,9 @@ public class SqlData {
|
|||
}
|
||||
mDataContentData3 = dataContentData3;
|
||||
}
|
||||
//利用JSON获取内容属性
|
||||
/*
|
||||
* 利用JSON获取内容属性
|
||||
* */
|
||||
public JSONObject getContent() throws JSONException {
|
||||
//记录未在数据库建立
|
||||
if (mIsCreate) {
|
||||
|
@ -154,7 +158,9 @@ public class SqlData {
|
|||
js.put(DataColumns.DATA3, mDataContentData3);
|
||||
return js;
|
||||
}
|
||||
//传入noteid为建立便签准备
|
||||
/*
|
||||
* 传入noteid为建立便签准备
|
||||
* */
|
||||
public void commit(long noteId, boolean validateVersion, long version) {
|
||||
|
||||
if (mIsCreate) {
|
||||
|
@ -166,9 +172,8 @@ public class SqlData {
|
|||
Uri uri = mContentResolver.insert(Notes.CONTENT_DATA_URI, mDiffDataValues);
|
||||
try {
|
||||
/*
|
||||
Uri的getPathSegments()方法返回的是一个元素为String的List,
|
||||
每个元素都是从Uri截取出来的一部分。
|
||||
*/
|
||||
* 返回一个元素为String的List,
|
||||
* */
|
||||
mDataId = Long.valueOf(uri.getPathSegments().get(1));
|
||||
//捕获数字格式异常
|
||||
} catch (NumberFormatException e) {
|
||||
|
@ -179,10 +184,7 @@ public class SqlData {
|
|||
if (mDiffDataValues.size() > 0) {
|
||||
int result = 0;
|
||||
if (!validateVersion) {
|
||||
/*
|
||||
ContentResolver.update方法ContentValue只更新指定的字段
|
||||
.update(Uri arg0,ContentValues arg1,String arg2,String[] arg3)
|
||||
*/
|
||||
|
||||
result = mContentResolver.update(ContentUris.withAppendedId(
|
||||
Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues, null, null);
|
||||
} else {
|
||||
|
|
|
@ -121,7 +121,7 @@ public class SqlNote {
|
|||
private ContentValues mDiffNoteValues;
|
||||
|
||||
private ArrayList<SqlData> mDataList;
|
||||
//三类构造函数
|
||||
|
||||
public SqlNote(Context context) {
|
||||
mContext = context;
|
||||
mContentResolver = context.getContentResolver();
|
||||
|
@ -165,7 +165,9 @@ public class SqlNote {
|
|||
mDiffNoteValues = new ContentValues();
|
||||
|
||||
}
|
||||
//递归查询符合的id
|
||||
/*
|
||||
* 递归查询符合的id
|
||||
* */
|
||||
private void loadFromCursor(long id) {
|
||||
Cursor c = null;
|
||||
try {
|
||||
|
@ -184,7 +186,9 @@ public class SqlNote {
|
|||
c.close();
|
||||
}
|
||||
}
|
||||
//利用cursor设置属性参数
|
||||
/*
|
||||
* 利用cursor设置属性参数
|
||||
* */
|
||||
private void loadFromCursor(Cursor c) {
|
||||
mId = c.getLong(ID_COLUMN);
|
||||
mAlertDate = c.getLong(ALERTED_DATE_COLUMN);
|
||||
|
@ -199,7 +203,9 @@ public class SqlNote {
|
|||
mWidgetType = c.getInt(WIDGET_TYPE_COLUMN);
|
||||
mVersion = c.getLong(VERSION_COLUMN);
|
||||
}
|
||||
//根据数据库查询id
|
||||
/*
|
||||
* 根据数据库查询id
|
||||
* */
|
||||
private void loadDataContent() {
|
||||
Cursor c = null;
|
||||
mDataList.clear();
|
||||
|
@ -225,7 +231,9 @@ public class SqlNote {
|
|||
c.close();
|
||||
}
|
||||
}
|
||||
//根据JSON的内容设置属性参数
|
||||
/*
|
||||
* 根据JSON的内容设置属性参数
|
||||
* */
|
||||
public boolean setContent(JSONObject js) {
|
||||
try {
|
||||
JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE);
|
||||
|
@ -358,7 +366,9 @@ public class SqlNote {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
//小米便签获取内容
|
||||
/*
|
||||
* 小米便签获取内容
|
||||
* */
|
||||
public JSONObject getContent() {
|
||||
try {
|
||||
JSONObject js = new JSONObject();
|
||||
|
@ -407,36 +417,52 @@ public class SqlNote {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
//设置父ID
|
||||
/*
|
||||
* 设置父ID
|
||||
* */
|
||||
public void setParentId(long id) {
|
||||
mParentId = id;
|
||||
mDiffNoteValues.put(NoteColumns.PARENT_ID, id);
|
||||
}
|
||||
//设置日程同步ID
|
||||
/*
|
||||
* 设置日程同步ID
|
||||
* */
|
||||
public void setGtaskId(String gid) {
|
||||
mDiffNoteValues.put(NoteColumns.GTASK_ID, gid);
|
||||
}
|
||||
//设置同步ID
|
||||
/*
|
||||
* 设置同步ID
|
||||
* */
|
||||
public void setSyncId(long syncId) {
|
||||
mDiffNoteValues.put(NoteColumns.SYNC_ID, syncId);
|
||||
}
|
||||
//重新设定本地修改
|
||||
/*
|
||||
* 重新设定本地修改
|
||||
* */
|
||||
public void resetLocalModified() {
|
||||
mDiffNoteValues.put(NoteColumns.LOCAL_MODIFIED, 0);
|
||||
}
|
||||
//获取对象ID
|
||||
/*
|
||||
* 获取对象ID
|
||||
* */
|
||||
public long getId() {
|
||||
return mId;
|
||||
}
|
||||
//获取父ID
|
||||
/*
|
||||
* 获取父ID
|
||||
* */
|
||||
public long getParentId() {
|
||||
return mParentId;
|
||||
}
|
||||
//获取对象片段
|
||||
/*
|
||||
* 获取对象片段
|
||||
* */
|
||||
public String getSnippet() {
|
||||
return mSnippet;
|
||||
}
|
||||
//判断是否为便签ID
|
||||
/*
|
||||
* 判断是否为便签ID
|
||||
* */
|
||||
public boolean isNoteType() {
|
||||
return mType == Notes.TYPE_NOTE;
|
||||
}
|
||||
|
@ -498,7 +524,6 @@ public class SqlNote {
|
|||
}
|
||||
}
|
||||
|
||||
// 刷新本地infof
|
||||
loadFromCursor(mId);
|
||||
if (mType == Notes.TYPE_NOTE)
|
||||
loadDataContent();
|
||||
|
|
|
@ -44,7 +44,9 @@ public class Task extends Node {
|
|||
private Task mPriorSibling;
|
||||
|
||||
private TaskList mParent;
|
||||
//构造函数
|
||||
/*
|
||||
* 构造函数
|
||||
* */
|
||||
public Task() {
|
||||
super();
|
||||
mCompleted = false;
|
||||
|
@ -53,7 +55,9 @@ public class Task extends Node {
|
|||
mParent = null;
|
||||
mMetaInfo = null;
|
||||
}
|
||||
//获得创造的动作
|
||||
/*
|
||||
* 获得创造的动作
|
||||
* */
|
||||
public JSONObject getCreateAction(int actionId) {
|
||||
JSONObject js = new JSONObject();
|
||||
|
||||
|
@ -102,7 +106,9 @@ public class Task extends Node {
|
|||
|
||||
return js;
|
||||
}
|
||||
//获得更新的动作
|
||||
/*
|
||||
* 获得更新的动作
|
||||
* */
|
||||
public JSONObject getUpdateAction(int actionId) {
|
||||
JSONObject js = new JSONObject();
|
||||
|
||||
|
@ -134,7 +140,9 @@ public class Task extends Node {
|
|||
|
||||
return js;
|
||||
}
|
||||
//通过远程JSON设置内容
|
||||
/*
|
||||
* 通过远程JSON设置内容
|
||||
* */
|
||||
public void setContentByRemoteJSON(JSONObject js) {
|
||||
if (js != null) {
|
||||
try {
|
||||
|
@ -174,7 +182,9 @@ public class Task extends Node {
|
|||
}
|
||||
}
|
||||
}
|
||||
//通过本地JSON设置内容
|
||||
/*
|
||||
* 通过本地JSON设置内容
|
||||
* */
|
||||
public void setContentByLocalJSON(JSONObject js) {
|
||||
//JSON空消息设置内容失败
|
||||
if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE)
|
||||
|
@ -247,7 +257,9 @@ public class Task extends Node {
|
|||
return null;
|
||||
}
|
||||
}
|
||||
//设置元信息
|
||||
/*
|
||||
* 设置元信息
|
||||
* */
|
||||
public void setMetaInfo(MetaData metaData) {
|
||||
if (metaData != null && metaData.getNotes() != null) {
|
||||
try {
|
||||
|
@ -311,36 +323,50 @@ public class Task extends Node {
|
|||
|
||||
return SYNC_ACTION_ERROR;
|
||||
}
|
||||
//值得保留
|
||||
//值得保留的
|
||||
public boolean isWorthSaving() {
|
||||
return mMetaInfo != null || (getName() != null && getName().trim().length() > 0)
|
||||
|| (getNotes() != null && getNotes().trim().length() > 0);
|
||||
}
|
||||
//设置完成
|
||||
/*
|
||||
* 设置完成
|
||||
* */
|
||||
public void setCompleted(boolean completed) {
|
||||
this.mCompleted = completed;
|
||||
}
|
||||
//设置便签
|
||||
/*
|
||||
* 设置便签
|
||||
* */
|
||||
public void setNotes(String notes) {
|
||||
this.mNotes = notes;
|
||||
}
|
||||
//设置优先级
|
||||
/*
|
||||
* 设置优先级
|
||||
* */
|
||||
public void setPriorSibling(Task priorSibling) {
|
||||
this.mPriorSibling = priorSibling;
|
||||
}
|
||||
//设置父列表
|
||||
/*
|
||||
* 设置父列表
|
||||
* */
|
||||
public void setParent(TaskList parent) {
|
||||
this.mParent = parent;
|
||||
}
|
||||
//获得完成项
|
||||
/*
|
||||
* 获得完成项
|
||||
* */
|
||||
public boolean getCompleted() {
|
||||
return this.mCompleted;
|
||||
}
|
||||
//获得便签
|
||||
/*
|
||||
* 获得便签
|
||||
* */
|
||||
public String getNotes() {
|
||||
return this.mNotes;
|
||||
}
|
||||
//获得优先级
|
||||
/*
|
||||
* 获得优先级
|
||||
* */
|
||||
public Task getPriorSibling() {
|
||||
return this.mPriorSibling;
|
||||
}
|
||||
|
|
|
@ -128,7 +128,7 @@ public class TaskList extends Node {
|
|||
}
|
||||
}
|
||||
}
|
||||
//通过本地JSON设置内容(在Node中有涉及)
|
||||
//通过本地JSON设置内容
|
||||
public void setContentByLocalJSON(JSONObject js) {
|
||||
if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE)) {
|
||||
Log.w(TAG, "setContentByLocalJSON: nothing is avaiable");
|
||||
|
|
|
@ -16,8 +16,9 @@
|
|||
|
||||
package net.micode.notes.gtask.exception;
|
||||
/*
|
||||
动作失败异常
|
||||
*/
|
||||
* 动作失败异常
|
||||
* */
|
||||
|
||||
public class ActionFailureException extends RuntimeException {
|
||||
private static final long serialVersionUID = 4425249765923293627L;
|
||||
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
|
||||
package net.micode.notes.gtask.exception;
|
||||
/*
|
||||
网络失败异常
|
||||
*/
|
||||
* 网络失败异常
|
||||
* */
|
||||
public class NetworkFailureException extends Exception {
|
||||
private static final long serialVersionUID = 2107610287180234136L;
|
||||
|
||||
|
|
|
@ -29,8 +29,8 @@ import net.micode.notes.ui.NotesListActivity;
|
|||
import net.micode.notes.ui.NotesPreferenceActivity;
|
||||
|
||||
/*
|
||||
Gtask异步任务
|
||||
*/
|
||||
* Gtask异步任务
|
||||
* */
|
||||
public class GTaskASyncTask extends AsyncTask<Void, String, Integer> {
|
||||
|
||||
private static int GTASK_SYNC_NOTIFICATION_ID = 5234235;
|
||||
|
@ -79,8 +79,7 @@ public class GTaskASyncTask extends AsyncTask<Void, String, Integer> {
|
|||
pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext,
|
||||
NotesListActivity.class), 0);
|
||||
}
|
||||
/* notification.setLatestEventInfo(mContext, mContext.getString(R.string.app_name), content,
|
||||
pendingIntent);*/
|
||||
|
||||
mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification);
|
||||
}
|
||||
|
||||
|
|
|
@ -61,9 +61,9 @@ import java.util.zip.Inflater;
|
|||
import java.util.zip.InflaterInputStream;
|
||||
|
||||
/*
|
||||
Gtask客户端类,提供登录Google账户,创建任务和任务列表
|
||||
添加和删除节点,提交、重置更新,获取任务列表等功能
|
||||
*/
|
||||
* Gtask客户端类,提供登录Google账户,创建任务和任务列表
|
||||
* 添加和删除节点,提交、重置更新,获取任务列表等功能
|
||||
* */
|
||||
public class GTaskClient {
|
||||
private static final String TAG = GTaskClient.class.getSimpleName();
|
||||
|
||||
|
|
|
@ -48,9 +48,9 @@ import java.util.Iterator;
|
|||
import java.util.Map;
|
||||
|
||||
/*
|
||||
Gtask管理者类,提供初始化任务列表,同步便签内容和文件夹
|
||||
添加、更新本地和远端节点,更新本地同步任务ID等功能
|
||||
*/
|
||||
* Gtask管理者类,提供初始化任务列表,同步便签内容和文件夹
|
||||
* 添加、更新本地和远端节点,更新本地同步任务ID等功能
|
||||
* */
|
||||
public class GTaskManager {
|
||||
private static final String TAG = GTaskManager.class.getSimpleName();
|
||||
|
||||
|
|
|
@ -23,8 +23,8 @@ import android.content.Intent;
|
|||
import android.os.Bundle;
|
||||
import android.os.IBinder;
|
||||
/*
|
||||
Gtask同步服务
|
||||
*/
|
||||
* Gtask同步服务
|
||||
* */
|
||||
public class GTaskSyncService extends Service {
|
||||
public final static String ACTION_STRING_NAME = "sync_action_type";
|
||||
|
||||
|
|
|
@ -132,17 +132,17 @@ public class Note {
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* In theory, once data changed, the note should be updated on {@link NoteColumns#LOCAL_MODIFIED} and
|
||||
* {@link NoteColumns#MODIFIED_DATE}. For data safety, though update note fails, we also update the
|
||||
* note data info
|
||||
*/
|
||||
* */
|
||||
//如果是本地修改,执行下列操作
|
||||
if (context.getContentResolver().update(
|
||||
ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), mNoteDiffValues, null,
|
||||
null) == 0) {
|
||||
Log.e(TAG, "Update note error, should not happen");
|
||||
// Do not return, fall through
|
||||
|
||||
}
|
||||
//清空已更改的内容
|
||||
mNoteDiffValues.clear();
|
||||
|
@ -156,7 +156,10 @@ public class Note {
|
|||
return true;
|
||||
}
|
||||
|
||||
//记录便签内部数据
|
||||
|
||||
/*
|
||||
* 记录便签内部数据
|
||||
* */
|
||||
private class NoteData {
|
||||
//文本内容id
|
||||
private long mTextDataId;
|
||||
|
@ -178,12 +181,16 @@ public class Note {
|
|||
mCallDataId = 0;
|
||||
}
|
||||
|
||||
//判断是否为本地修改
|
||||
/*
|
||||
* 判断是否为本地修改
|
||||
* */
|
||||
boolean isLocalModified() {
|
||||
return mTextDataValues.size() > 0 || mCallDataValues.size() > 0;
|
||||
}
|
||||
|
||||
//设置文本数据id的fangfa
|
||||
/*
|
||||
* 设置文本数据id的fangfa
|
||||
* */
|
||||
void setTextDataId(long id) {
|
||||
if(id <= 0) {
|
||||
//id <= 0 不合法的id,抛出异常
|
||||
|
@ -200,14 +207,18 @@ public class Note {
|
|||
mCallDataId = id;
|
||||
}
|
||||
|
||||
//插入通话记录数据
|
||||
/*
|
||||
* 插入通话记录数据
|
||||
* */
|
||||
void setCallData(String key, String value) {
|
||||
mCallDataValues.put(key, value);
|
||||
mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1);
|
||||
mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis());
|
||||
}
|
||||
|
||||
//插入文本数据
|
||||
/*
|
||||
* 插入文本数据
|
||||
* */
|
||||
void setTextData(String key, String value) {
|
||||
mTextDataValues.put(key, value);
|
||||
mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1);
|
||||
|
@ -215,9 +226,7 @@ public class Note {
|
|||
}
|
||||
|
||||
Uri pushIntoContentResolver(Context context, long noteId) {
|
||||
/**
|
||||
* 防止无效的id
|
||||
*/
|
||||
// 防止无效的id
|
||||
if (noteId <= 0) {
|
||||
throw new IllegalArgumentException(WRONGNOTEID + noteId);
|
||||
}
|
||||
|
@ -289,8 +298,10 @@ public class Note {
|
|||
try {
|
||||
ContentProviderResult[] results = context.getContentResolver().applyBatch(
|
||||
Notes.AUTHORITY, operationList);
|
||||
//如果res无效,插入失败,返回null值
|
||||
//否则返回uri
|
||||
/*
|
||||
* 如果res无效,插入失败,返回null值
|
||||
* 否则返回uri
|
||||
* */
|
||||
return (results == null || results.length == 0 || results[0] == null) ? null
|
||||
: ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId);
|
||||
} catch (RemoteException|OperationApplicationException e) {
|
||||
|
|
|
@ -82,7 +82,9 @@ public class WorkingNote {
|
|||
DataColumns.DATA4,
|
||||
};
|
||||
|
||||
//定义了便签显示的一系列参数
|
||||
/*
|
||||
* 定义了便签显示的一系列参数
|
||||
* */
|
||||
public static final String[] NOTE_PROJECTION = new String[] {
|
||||
NoteColumns.PARENT_ID,
|
||||
NoteColumns.ALERTED_DATE,
|
||||
|
@ -92,7 +94,7 @@ public class WorkingNote {
|
|||
NoteColumns.MODIFIED_DATE
|
||||
};
|
||||
|
||||
//定义了一系列id
|
||||
//定义了与数据库匹配的内容
|
||||
private static final int DATA_ID_COLUMN = 0;
|
||||
|
||||
private static final int DATA_CONTENT_COLUMN = 1;
|
||||
|
@ -113,8 +115,9 @@ public class WorkingNote {
|
|||
|
||||
private static final int NOTE_MODIFIED_DATE_COLUMN = 5;
|
||||
|
||||
// New note construct
|
||||
//构造函数,实例化时调用,创建新便签
|
||||
/*
|
||||
* 构造函数,实例化时调用,创建新便签
|
||||
* */
|
||||
private WorkingNote(Context context, long folderId) {
|
||||
mContext = context;
|
||||
mAlertDate = 0;
|
||||
|
@ -127,7 +130,9 @@ public class WorkingNote {
|
|||
mWidgetType = Notes.TYPE_WIDGET_INVALIDE;
|
||||
}
|
||||
|
||||
// 已有便签结构
|
||||
/*
|
||||
* 已有便签结构
|
||||
* */
|
||||
private WorkingNote(Context context, long noteId, long folderId) {
|
||||
mContext = context;
|
||||
mNoteId = noteId;
|
||||
|
@ -137,7 +142,9 @@ public class WorkingNote {
|
|||
loadNote();
|
||||
}
|
||||
|
||||
//根据ID加载便签的方法
|
||||
/*
|
||||
* 根据ID加载便签的方法
|
||||
* */
|
||||
private void loadNote() {
|
||||
Cursor cursor = mContext.getContentResolver().query(
|
||||
ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mNoteId), NOTE_PROJECTION, null,
|
||||
|
@ -166,7 +173,9 @@ public class WorkingNote {
|
|||
loadNoteData();
|
||||
}
|
||||
|
||||
//实现了加载便签数据的方法
|
||||
/*
|
||||
* 实现了加载便签数据的方法
|
||||
* */
|
||||
private void loadNoteData() {
|
||||
Cursor cursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, DATA_PROJECTION,
|
||||
DataColumns.NOTE_ID + "=?", new String[] {
|
||||
|
@ -178,8 +187,11 @@ public class WorkingNote {
|
|||
if (cursor.moveToFirst()) {
|
||||
do {
|
||||
String type = cursor.getString(DATA_MIME_TYPE_COLUMN);
|
||||
//匹配数据类型
|
||||
//如果是便签类的数据
|
||||
/*
|
||||
* 匹配数据类型
|
||||
* 如果是便签类的数据
|
||||
* */
|
||||
|
||||
if (DataConstants.NOTE.equals(type)) {
|
||||
//初始化
|
||||
mContent = cursor.getString(DATA_CONTENT_COLUMN);
|
||||
|
@ -189,21 +201,25 @@ public class WorkingNote {
|
|||
//如果是通话记录类的数据
|
||||
mNote.setCallDataId(cursor.getLong(DATA_ID_COLUMN));
|
||||
} else {
|
||||
//都不是,保错
|
||||
//都不是则报错
|
||||
Log.d(TAG, "Wrong note type with type:" + type);
|
||||
}
|
||||
} while (cursor.moveToNext());//遍历cursor中的所有内容
|
||||
}
|
||||
cursor.close();
|
||||
} else {
|
||||
//cursor为null,当前id找不到内容
|
||||
//将错误信息记入日志,抛出异常
|
||||
/*
|
||||
* cursor为null,当前id找不到内容
|
||||
* 将错误信息记入日志,抛出异常
|
||||
* */
|
||||
Log.e(TAG, "No data with id:" + mNoteId);
|
||||
throw new IllegalArgumentException("Unable to find note's data with id " + mNoteId);
|
||||
}
|
||||
}
|
||||
|
||||
//该方法实现了创建新的空便签的方法
|
||||
/*
|
||||
* 该方法实现了创建新的空便签的方法
|
||||
* */
|
||||
public static WorkingNote createEmptyNote(Context context, long folderId, int widgetId,
|
||||
int widgetType, int defaultBgColorId) {
|
||||
//创建新的便签
|
||||
|
@ -218,13 +234,17 @@ public class WorkingNote {
|
|||
return note;
|
||||
}
|
||||
|
||||
//该方法返回当前便签的功能
|
||||
//@ id 要加载的便签id号
|
||||
/*
|
||||
* 该方法返回当前便签的功能
|
||||
* @param id 要加载的便签id号
|
||||
* */
|
||||
public static WorkingNote load(Context context, long id) {
|
||||
return new WorkingNote(context, id, 0);
|
||||
}
|
||||
|
||||
//该方法实现了保存便签的功能
|
||||
/*
|
||||
* 该方法实现了保存便签的功能
|
||||
* */
|
||||
public synchronized boolean saveNote() {
|
||||
if (isWorthSaving()) {
|
||||
if (!existInDatabase()) {
|
||||
|
@ -240,9 +260,9 @@ public class WorkingNote {
|
|||
//同步便签
|
||||
mNote.syncNote(mContext, mNoteId);
|
||||
|
||||
/**
|
||||
/*
|
||||
* Update widget content if there exist any widget of this note
|
||||
*/
|
||||
* */
|
||||
if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID
|
||||
&& mWidgetType != Notes.TYPE_WIDGET_INVALIDE
|
||||
&& mNoteSettingStatusListener != null) {
|
||||
|
@ -255,12 +275,16 @@ public class WorkingNote {
|
|||
}
|
||||
}
|
||||
|
||||
//根据id判断是否在数据库中的方法,id>0有效,否则无效
|
||||
/*
|
||||
* 根据id判断是否在数据库中的方法,id>0有效,否则无效
|
||||
* */
|
||||
public boolean existInDatabase() {
|
||||
return mNoteId > 0;
|
||||
}
|
||||
|
||||
//判断是否需要保存的方法
|
||||
/*
|
||||
* 判断是否需要保存的方法
|
||||
* */
|
||||
private boolean isWorthSaving() {
|
||||
if (mIsDeleted || (!existInDatabase() && TextUtils.isEmpty(mContent))
|
||||
|| (existInDatabase() && !mNote.isLocalModified())) {
|
||||
|
@ -274,7 +298,9 @@ public class WorkingNote {
|
|||
mNoteSettingStatusListener = l;
|
||||
}
|
||||
|
||||
//设置闹铃时间的方法
|
||||
/*
|
||||
* 设置闹铃时间的方法
|
||||
* */
|
||||
public void setAlertDate(long date, boolean set) {
|
||||
//如果闹钟时间改变
|
||||
if (date != mAlertDate) {
|
||||
|
@ -288,9 +314,9 @@ public class WorkingNote {
|
|||
}
|
||||
}
|
||||
|
||||
//置上删除标记
|
||||
//mark - true,已删除
|
||||
//mark - false,未删除
|
||||
/*
|
||||
* 置上删除标记
|
||||
* */
|
||||
public void markDeleted(boolean mark) {
|
||||
mIsDeleted = mark;
|
||||
//widget有效
|
||||
|
@ -300,11 +326,15 @@ public class WorkingNote {
|
|||
}
|
||||
}
|
||||
|
||||
//设置背景色ID
|
||||
/*
|
||||
* 设置背景色ID
|
||||
* */
|
||||
public void setBgColorId(int id) {
|
||||
if (id != mBgColorId) {
|
||||
//如果背景色id改变,执行下列操作
|
||||
//否则,不执行操作
|
||||
/*
|
||||
* 如果背景色id改变,执行下列操作
|
||||
* 否则,不执行操作
|
||||
* */
|
||||
mBgColorId = id;
|
||||
if (mNoteSettingStatusListener != null) {
|
||||
mNoteSettingStatusListener.onBackgroundColorChanged();
|
||||
|
@ -314,7 +344,9 @@ public class WorkingNote {
|
|||
}
|
||||
}
|
||||
|
||||
//设置为清单模式的方法
|
||||
/*
|
||||
* 设置为清单模式的方法
|
||||
* */
|
||||
public void setCheckListMode(int mode) {
|
||||
if (mMode != mode) {
|
||||
//如果模式改变,执行下列操作
|
||||
|
@ -327,7 +359,9 @@ public class WorkingNote {
|
|||
}
|
||||
}
|
||||
|
||||
//设置Widget类型的方法
|
||||
/*
|
||||
* 设置Widget类型的方法
|
||||
* */
|
||||
public void setWidgetType(int type) {
|
||||
if (type != mWidgetType) {
|
||||
mWidgetType = type;
|
||||
|
@ -336,8 +370,10 @@ public class WorkingNote {
|
|||
}
|
||||
}
|
||||
|
||||
//设置widget的id的方法
|
||||
//如果id不变,不执行操作
|
||||
/*
|
||||
* 设置widget的id的方法
|
||||
* 如果id不变,不执行操作
|
||||
* */
|
||||
public void setWidgetId(int id) {
|
||||
if (id != mWidgetId) {
|
||||
mWidgetId = id;
|
||||
|
@ -346,7 +382,9 @@ public class WorkingNote {
|
|||
}
|
||||
}
|
||||
|
||||
//该方法实现了保存当前新增内容的功能
|
||||
/*
|
||||
* 该方法实现了保存当前新增内容的功能
|
||||
* */
|
||||
public void setWorkingText(String text) {
|
||||
if (!TextUtils.equals(mContent, text)) {
|
||||
mContent = text;
|
||||
|
@ -361,37 +399,51 @@ public class WorkingNote {
|
|||
mNote.setNoteValue(NoteColumns.PARENT_ID, String.valueOf(Notes.ID_CALL_RECORD_FOLDER));
|
||||
}
|
||||
|
||||
//判断是否设置提醒的方法
|
||||
/*
|
||||
* 判断是否设置提醒的方法
|
||||
* */
|
||||
public boolean hasClockAlert() {
|
||||
return (mAlertDate > 0 ? true : false);
|
||||
}
|
||||
|
||||
//获取便签内容
|
||||
/*
|
||||
* 获取便签内容
|
||||
* */
|
||||
public String getContent() {
|
||||
return mContent;
|
||||
}
|
||||
|
||||
//共有方法,获取闹铃时间
|
||||
/*
|
||||
* 获取闹铃时间
|
||||
* */
|
||||
public long getAlertDate() {
|
||||
return mAlertDate;
|
||||
}
|
||||
|
||||
//共有方法,获取最近修改时间
|
||||
/*
|
||||
* 获取最近修改时间
|
||||
* */
|
||||
public long getModifiedDate() {
|
||||
return mModifiedDate;
|
||||
}
|
||||
|
||||
//获取背景色的资源id号
|
||||
/*
|
||||
* 获取背景色的资源id号
|
||||
* */
|
||||
public int getBgColorResId() {
|
||||
return NoteBgResources.getNoteBgResource(mBgColorId);
|
||||
}
|
||||
|
||||
//共有方法,获取背景色ID
|
||||
/*
|
||||
* 共有方法,获取背景色ID
|
||||
* */
|
||||
public int getBgColorId() {
|
||||
return mBgColorId;
|
||||
}
|
||||
|
||||
//获取标题背景资源id
|
||||
/*
|
||||
* 获取标题背景资源id
|
||||
* */
|
||||
public int getTitleBgResId() {
|
||||
return NoteBgResources.getNoteTitleBgResource(mBgColorId);
|
||||
}
|
||||
|
@ -400,48 +452,58 @@ public class WorkingNote {
|
|||
return mMode;
|
||||
}
|
||||
|
||||
//获取便签id
|
||||
/*
|
||||
* 获取便签id
|
||||
* */
|
||||
public long getNoteId() {
|
||||
return mNoteId;
|
||||
}
|
||||
|
||||
//获取文件夹id
|
||||
/*
|
||||
* 获取文件夹id
|
||||
* */
|
||||
public long getFolderId() {
|
||||
return mFolderId;
|
||||
}
|
||||
|
||||
//获取widget的id
|
||||
/*
|
||||
* 获取widget的id
|
||||
* */
|
||||
public int getWidgetId() {
|
||||
return mWidgetId;
|
||||
}
|
||||
|
||||
//获取widget的类型
|
||||
/*
|
||||
* 获取widget的类型
|
||||
* */
|
||||
public int getWidgetType() {
|
||||
return mWidgetType;
|
||||
}
|
||||
|
||||
//接口,定义了一系列便签设置更改的监听器
|
||||
/*
|
||||
* 接口,定义了一系列便签设置更改的监听器
|
||||
* */
|
||||
public interface NoteSettingChangedListener {
|
||||
/**
|
||||
/*
|
||||
* Called when the background color of current note has just changed
|
||||
*/
|
||||
* */
|
||||
void onBackgroundColorChanged();
|
||||
|
||||
/**
|
||||
/*
|
||||
* Called when user set clock
|
||||
*/
|
||||
* */
|
||||
void onClockAlertChanged(long date, boolean set);
|
||||
|
||||
/**
|
||||
/*
|
||||
* Call when user create note from widget
|
||||
*/
|
||||
* */
|
||||
void onWidgetChanged();
|
||||
|
||||
/**
|
||||
/*
|
||||
* Call when switch between check list mode and normal mode
|
||||
* @param oldMode is previous mode before change
|
||||
* @param newMode is new mode
|
||||
*/
|
||||
* */
|
||||
void onCheckListModeChanged(int oldMode, int newMode);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,13 +36,15 @@ import java.io.IOException;
|
|||
import java.io.PrintStream;
|
||||
|
||||
/*
|
||||
备份工具类
|
||||
*/
|
||||
* 备份工具类
|
||||
* */
|
||||
public class BackupUtils {
|
||||
private static final String TAG = "BackupUtils";
|
||||
// Singleton stuff
|
||||
private static BackupUtils sInstance;
|
||||
//获得实例
|
||||
/*
|
||||
* 获得实例
|
||||
* */
|
||||
public static synchronized BackupUtils getInstance(Context context) {
|
||||
if (sInstance == null) {
|
||||
sInstance = new BackupUtils(context);
|
||||
|
@ -50,11 +52,10 @@ public class BackupUtils {
|
|||
return sInstance;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Following states are signs to represents backup or restore
|
||||
* status
|
||||
*/
|
||||
// Currently, the sdcard is not mounted
|
||||
* */
|
||||
public static final int STATE_SD_CARD_UNMOUONTED = 0;
|
||||
// The backup file not exist
|
||||
public static final int STATE_BACKUP_FILE_NOT_EXIST = 1;
|
||||
|
@ -66,32 +67,37 @@ public class BackupUtils {
|
|||
public static final int STATE_SUCCESS = 4;
|
||||
|
||||
private TextExport mTextExport;
|
||||
//构造函数
|
||||
private BackupUtils(Context context) {
|
||||
mTextExport = new TextExport(context);
|
||||
}
|
||||
|
||||
private static boolean externalStorageAvailable() {
|
||||
/*Environment类中提供了几个静态常量用于标识外部存储的状态
|
||||
MEDIA_MOUNTED存储媒体已经挂载
|
||||
并且挂载点可读/写
|
||||
可以通过静态方法getExternalStorageState()来获取外部存储的状态
|
||||
其中.equals表示的是二者的内容是否相等*/
|
||||
/*
|
||||
* 通过静态方法getExternalStorageState()来获取外部存储的状态
|
||||
* */
|
||||
return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());
|
||||
}
|
||||
//导出文本
|
||||
/*
|
||||
* 导出文本
|
||||
* */
|
||||
public int exportToText() {
|
||||
return mTextExport.exportToText();
|
||||
}
|
||||
//获取导出文本名字
|
||||
/*
|
||||
* 获取导出文本名字
|
||||
* */
|
||||
public String getExportedTextFileName() {
|
||||
return mTextExport.mFileName;
|
||||
}
|
||||
//获取导出文本目录
|
||||
/*
|
||||
* 获取导出文本目录
|
||||
* */
|
||||
public String getExportedTextFileDir() {
|
||||
return mTextExport.mFileDirectory;
|
||||
}
|
||||
//引用内部类包含了之前data.Notes中的NoteColumns和DataColumns
|
||||
/*
|
||||
* 引用内部类包含了之前data.Notes中的NoteColumns和DataColumns
|
||||
* */
|
||||
private static class TextExport {
|
||||
private static final String[] NOTE_PROJECTION = {
|
||||
NoteColumns.ID,
|
||||
|
@ -131,34 +137,35 @@ public class BackupUtils {
|
|||
private Context mContext;
|
||||
private String mFileName;
|
||||
private String mFileDirectory;
|
||||
//文本导出初始化
|
||||
/*
|
||||
* 文本导出初始化
|
||||
* */
|
||||
public TextExport(Context context) {
|
||||
TEXT_FORMAT = context.getResources().getStringArray(R.array.format_for_exported_note);
|
||||
mContext = context;
|
||||
mFileName = "";
|
||||
mFileDirectory = "";
|
||||
}
|
||||
//获取文本格式类型
|
||||
/*
|
||||
* 获取文本格式类型
|
||||
* */
|
||||
private String getFormat(int id) {
|
||||
return TEXT_FORMAT[id];
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Export the folder identified by folder id to text
|
||||
*/
|
||||
* */
|
||||
private void exportFolderToText(String folderId, PrintStream ps) {
|
||||
// 查询属于此文件夹的Notes
|
||||
Cursor notesCursor = mContext.getContentResolver().query(Notes.CONTENT_NOTE_URI,
|
||||
NOTE_PROJECTION, NoteColumns.PARENT_ID + "=?", new String[] {
|
||||
folderId
|
||||
}, null);
|
||||
//下面有很多地方调用了android.database.Cursor类有一些固定用法
|
||||
if (notesCursor != null) {
|
||||
/*
|
||||
查询出来的cursor的初始位置是指向第一条记录的前一个位置的
|
||||
cursor.moveToFirst()指向查询结果的第一个位置。
|
||||
一般通过判断cursor.moveToFirst()的值为true或false来确定查询结果是否为空。
|
||||
*/
|
||||
* 确定查询结果是否为空。
|
||||
* */
|
||||
if (notesCursor.moveToFirst()) {
|
||||
do {
|
||||
// Print note's last modified date
|
||||
|
@ -174,9 +181,9 @@ public class BackupUtils {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Export note identified by id to a print stream
|
||||
*/
|
||||
* */
|
||||
private void exportNoteToText(String noteId, PrintStream ps) {
|
||||
Cursor dataCursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI,
|
||||
DATA_PROJECTION, DataColumns.NOTE_ID + "=?", new String[] {
|
||||
|
@ -230,8 +237,8 @@ public class BackupUtils {
|
|||
}
|
||||
|
||||
/*
|
||||
便签将被导出为用户可读的文本
|
||||
*/
|
||||
* 便签将被导出为用户可读的文本
|
||||
* */
|
||||
public int exportToText() {
|
||||
//判断是否有外部存储空间
|
||||
if (!externalStorageAvailable()) {
|
||||
|
@ -285,7 +292,7 @@ public class BackupUtils {
|
|||
+ "=0", null, null);
|
||||
|
||||
if (noteCursor != null) {
|
||||
//如果不为空
|
||||
//如果数据库首项不为空
|
||||
if (noteCursor.moveToFirst()) {
|
||||
do {
|
||||
ps.println(String.format(getFormat(FORMAT_NOTE_DATE), DateFormat.format(
|
||||
|
@ -305,8 +312,8 @@ public class BackupUtils {
|
|||
}
|
||||
|
||||
/*
|
||||
获取指向该文件的打印流 {@generateExportedTextFile}
|
||||
*/
|
||||
* 获取指向该文件的打印流 {@generateExportedTextFile}
|
||||
* */
|
||||
private PrintStream getExportToTextPrintStream() {
|
||||
File file = generateFileMountedOnSDcard(mContext, R.string.file_path,
|
||||
R.string.file_name_txt_format);
|
||||
|
@ -332,8 +339,8 @@ public class BackupUtils {
|
|||
}
|
||||
|
||||
/*
|
||||
生成文本文件来存储导入的数据
|
||||
*/
|
||||
* 生成文本文件来存储导入的数据
|
||||
* */
|
||||
private static File generateFileMountedOnSDcard(Context context, int filePathResId, int fileNameFormatResId) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(Environment.getExternalStorageDirectory());
|
||||
|
|
|
@ -35,18 +35,20 @@ import java.util.ArrayList;
|
|||
import java.util.HashSet;
|
||||
|
||||
/*
|
||||
便签数据处理工具类
|
||||
*/
|
||||
* 便签数据处理工具类
|
||||
* */
|
||||
public class DataUtils {
|
||||
public static final String TAG = "DataUtils";
|
||||
//批处理删除便签
|
||||
/*
|
||||
* 批处理删除便签
|
||||
* */
|
||||
public static boolean batchDeleteNotes(ContentResolver resolver, HashSet<Long> ids) {
|
||||
//id不存在
|
||||
if (ids == null) {
|
||||
Log.d(TAG, "the ids is null");
|
||||
return true;
|
||||
}
|
||||
//id在哈希表里
|
||||
//没有id在哈希表里
|
||||
if (ids.size() == 0) {
|
||||
Log.d(TAG, "no id is in the hashset");
|
||||
return true;
|
||||
|
@ -88,7 +90,9 @@ public class DataUtils {
|
|||
values.put(NoteColumns.LOCAL_MODIFIED, 1);
|
||||
resolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id), values, null, null);
|
||||
}
|
||||
//批量移动至文件夹
|
||||
/*
|
||||
* 批量移动至文件夹
|
||||
* */
|
||||
public static boolean batchMoveToFolder(ContentResolver resolver, HashSet<Long> ids,
|
||||
long folderId) {
|
||||
if (ids == null) {
|
||||
|
@ -121,15 +125,12 @@ public class DataUtils {
|
|||
}
|
||||
|
||||
/*
|
||||
获取除系统文件夹外的所有文件夹计数 {@link Notes#TYPE_SYSTEM}}
|
||||
*/
|
||||
* 获取除系统文件夹外的所有文件夹计数 {@link Notes#TYPE_SYSTEM}}
|
||||
* */
|
||||
public static int getUserFolderCount(ContentResolver resolver) {
|
||||
/*
|
||||
ContentResolver直译为内容解析器,
|
||||
Android中程序间数据的共享是通过Provider/Resolver进行的。
|
||||
提供数据(内容)的就叫Provider,Resovler提供接口对这个内容进行解读。
|
||||
在这里,系统提供了联系人的Provider,那么我们就需要构建一个Resolver来读取联系人的内容。
|
||||
*/
|
||||
* 程序间数据的共享
|
||||
* */
|
||||
Cursor cursor =resolver.query(Notes.CONTENT_NOTE_URI,
|
||||
new String[] { "COUNT(*)" },
|
||||
NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>?",
|
||||
|
@ -167,7 +168,9 @@ public class DataUtils {
|
|||
}
|
||||
return exist;
|
||||
}
|
||||
//查询该ID在数据库中是否存在
|
||||
/*
|
||||
* 查询该ID在数据库中是否存在
|
||||
* */
|
||||
public static boolean existInNoteDatabase(ContentResolver resolver, long noteId) {
|
||||
Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId),
|
||||
null, null, null, null);
|
||||
|
@ -182,7 +185,9 @@ public class DataUtils {
|
|||
}
|
||||
return exist;
|
||||
}
|
||||
//查询dataID在数据库中是否存在
|
||||
/*
|
||||
* 查询dataID在数据库中是否存在
|
||||
* */
|
||||
public static boolean existInDataDatabase(ContentResolver resolver, long dataId) {
|
||||
Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId),
|
||||
null, null, null, null);
|
||||
|
@ -196,7 +201,9 @@ public class DataUtils {
|
|||
}
|
||||
return exist;
|
||||
}
|
||||
//检查可见文件名是否存在
|
||||
/*
|
||||
* 检查可见文件名是否存在
|
||||
* */
|
||||
public static boolean checkVisibleFolderName(ContentResolver resolver, String name) {
|
||||
Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, null,
|
||||
NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER +
|
||||
|
@ -212,7 +219,9 @@ public class DataUtils {
|
|||
}
|
||||
return exist;
|
||||
}
|
||||
//获取文件夹便签的widget返回的是哈希表
|
||||
/*
|
||||
* 获取文件夹便签的widget返回的是哈希表
|
||||
* */
|
||||
public static HashSet<AppWidgetAttribute> getFolderNoteWidget(ContentResolver resolver, long folderId) {
|
||||
Cursor c = resolver.query(Notes.CONTENT_NOTE_URI,
|
||||
new String[] { NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE },
|
||||
|
@ -241,7 +250,9 @@ public class DataUtils {
|
|||
}
|
||||
return set;
|
||||
}
|
||||
//通过便签ID获得电话号码
|
||||
/*
|
||||
* 通过便签ID获得电话号码
|
||||
* */
|
||||
public static String getCallNumberByNoteId(ContentResolver resolver, long noteId) {
|
||||
Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI,
|
||||
new String [] { CallNote.PHONE_NUMBER },
|
||||
|
@ -262,7 +273,9 @@ public class DataUtils {
|
|||
}
|
||||
return "";
|
||||
}
|
||||
//通过电话号码和拨打日期获得便签ID
|
||||
/*
|
||||
* 通过电话号码和拨打日期获得便签ID
|
||||
* */
|
||||
public static long getNoteIdByPhoneNumberAndCallDate(ContentResolver resolver, String phoneNumber, long callDate) {
|
||||
Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI,
|
||||
new String [] { CallNote.NOTE_ID },
|
||||
|
@ -284,7 +297,9 @@ public class DataUtils {
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
//通过ID获取NoteColumns.SNIPPET
|
||||
/*
|
||||
* 通过ID获取NoteColumns.SNIPPET
|
||||
* */
|
||||
public static String getSnippetById(ContentResolver resolver, long noteId) {
|
||||
Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI,
|
||||
new String [] { NoteColumns.SNIPPET },
|
||||
|
@ -304,7 +319,9 @@ public class DataUtils {
|
|||
//抛出无法利用id找到便签的异常
|
||||
throw new IllegalArgumentException("Note is not found with id: " + noteId);
|
||||
}
|
||||
//获得格式化的snippet(主要是去除无用字符)
|
||||
/*
|
||||
* 获得格式化的snippet(主要是去除无用字符)
|
||||
* */
|
||||
public static String getFormattedSnippet(String snippet) {
|
||||
if (snippet != null) {
|
||||
snippet = snippet.trim();
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
|
||||
package net.micode.notes.tool;
|
||||
/*
|
||||
字符工具类
|
||||
*/
|
||||
* 字符工具类
|
||||
* */
|
||||
public class GTaskStringUtils {
|
||||
//日程同步动作ID
|
||||
public final static String GTASK_JSON_ACTION_ID = "action_id";
|
||||
|
|
|
@ -22,8 +22,8 @@ import android.preference.PreferenceManager;
|
|||
import net.micode.notes.R;
|
||||
import net.micode.notes.ui.NotesPreferenceActivity;
|
||||
/*
|
||||
界面元素解析工具类
|
||||
*/
|
||||
* 界面元素解析工具类
|
||||
* */
|
||||
public class ResourceParser {
|
||||
//定义各种颜色
|
||||
public static final int YELLOW = 0;
|
||||
|
@ -40,9 +40,13 @@ public class ResourceParser {
|
|||
public static final int TEXT_SUPER = 3;
|
||||
//背景默认字体大小
|
||||
public static final int BG_DEFAULT_FONT_SIZE = TEXT_MEDIUM;
|
||||
//便签背景源
|
||||
/*
|
||||
* 便签背景源
|
||||
* */
|
||||
public static class NoteBgResources {
|
||||
//颜色
|
||||
/*
|
||||
* 颜色
|
||||
* */
|
||||
private final static int [] BG_EDIT_RESOURCES = new int [] {
|
||||
R.drawable.edit_yellow,
|
||||
R.drawable.edit_blue,
|
||||
|
@ -50,7 +54,9 @@ public class ResourceParser {
|
|||
R.drawable.edit_green,
|
||||
R.drawable.edit_red
|
||||
};
|
||||
//标题色
|
||||
/*
|
||||
* 标题色
|
||||
* */
|
||||
private final static int [] BG_EDIT_TITLE_RESOURCES = new int [] {
|
||||
R.drawable.edit_title_yellow,
|
||||
R.drawable.edit_title_blue,
|
||||
|
@ -58,16 +64,22 @@ public class ResourceParser {
|
|||
R.drawable.edit_title_green,
|
||||
R.drawable.edit_title_red
|
||||
};
|
||||
//获取便签背景源第ID项内容
|
||||
/*
|
||||
* 获取便签背景源第ID项内容
|
||||
* */
|
||||
public static int getNoteBgResource(int id) {
|
||||
return BG_EDIT_RESOURCES[id];
|
||||
}
|
||||
//获取便签标题背景源第ID项内容
|
||||
/*
|
||||
* 获取便签标题背景源第ID项内容
|
||||
* */
|
||||
public static int getNoteTitleBgResource(int id) {
|
||||
return BG_EDIT_TITLE_RESOURCES[id];
|
||||
}
|
||||
}
|
||||
//获得默认背景颜色ID
|
||||
/*
|
||||
* 获得默认背景颜色ID
|
||||
* */
|
||||
public static int getDefaultBgId(Context context) {
|
||||
if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean(
|
||||
NotesPreferenceActivity.PREFERENCE_SET_BG_COLOR_KEY, false)) {
|
||||
|
@ -76,7 +88,9 @@ public class ResourceParser {
|
|||
return BG_DEFAULT_COLOR;
|
||||
}
|
||||
}
|
||||
//便签不同区域的定色
|
||||
/*
|
||||
* 便签不同区域的定色
|
||||
* */
|
||||
public static class NoteItemBgResources {
|
||||
private final static int [] BG_FIRST_RESOURCES = new int [] {
|
||||
R.drawable.list_yellow_up,
|
||||
|
@ -109,23 +123,33 @@ public class ResourceParser {
|
|||
R.drawable.list_green_single,
|
||||
R.drawable.list_red_single
|
||||
};
|
||||
//获得便签背景首源
|
||||
/*
|
||||
* 获得便签背景首源
|
||||
* */
|
||||
public static int getNoteBgFirstRes(int id) {
|
||||
return BG_FIRST_RESOURCES[id];
|
||||
}
|
||||
//获得便签背景尾源
|
||||
/*
|
||||
* 获得便签背景尾源
|
||||
* */
|
||||
public static int getNoteBgLastRes(int id) {
|
||||
return BG_LAST_RESOURCES[id];
|
||||
}
|
||||
//获得单个便签源
|
||||
/*
|
||||
* 获得单个便签源
|
||||
* */
|
||||
public static int getNoteBgSingleRes(int id) {
|
||||
return BG_SINGLE_RESOURCES[id];
|
||||
}
|
||||
//获得便签正常源
|
||||
/*
|
||||
* 获得便签正常源
|
||||
* */
|
||||
public static int getNoteBgNormalRes(int id) {
|
||||
return BG_NORMAL_RESOURCES[id];
|
||||
}
|
||||
//获得文件背景源
|
||||
/*
|
||||
* 获得文件背景源
|
||||
* */
|
||||
public static int getFolderBgRes() {
|
||||
return R.drawable.list_folder;
|
||||
}
|
||||
|
@ -165,13 +189,13 @@ public class ResourceParser {
|
|||
R.style.TextAppearanceLarge,
|
||||
R.style.TextAppearanceSuper
|
||||
};
|
||||
|
||||
public static int getTexAppearanceResource(int id) {
|
||||
/**
|
||||
/*
|
||||
* HACKME: Fix bug of store the resource id in shared preference.
|
||||
* The id may larger than the length of resources, in this case,
|
||||
* return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE}
|
||||
*/
|
||||
* */
|
||||
public static int getTexAppearanceResource(int id) {
|
||||
|
||||
//如果索引超界
|
||||
if (id >= TEXTAPPEARANCE_RESOURCES.length) {
|
||||
return BG_DEFAULT_FONT_SIZE;
|
||||
|
|
|
@ -48,11 +48,11 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD
|
|||
//实例化播放器类
|
||||
MediaPlayer mPlayer;
|
||||
|
||||
/**
|
||||
/*
|
||||
* 该方法重写了Activity类的onCreat方法,启动Activity时调用
|
||||
* @ savedInstanceState 如果AlarmAlertActivity被系统意外destroy,取断点值;
|
||||
* 否则为null
|
||||
*/
|
||||
* */
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
//调用父类onCreate方法
|
||||
|
@ -99,13 +99,17 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD
|
|||
}
|
||||
}
|
||||
|
||||
//私有方法,判断屏幕是否亮起
|
||||
/*
|
||||
* 私有方法,判断屏幕是否亮起
|
||||
* */
|
||||
private boolean isScreenOn() {
|
||||
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
|
||||
return pm.isScreenOn();
|
||||
}
|
||||
|
||||
//播放提示音的方法
|
||||
/*
|
||||
* 播放提示音的方法
|
||||
* */
|
||||
private void playAlarmSound() {
|
||||
//获取默认提示音id
|
||||
Uri url = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM);
|
||||
|
@ -168,9 +172,12 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD
|
|||
finish();//退出当前Activity
|
||||
}
|
||||
|
||||
//该方法实现了停止闹钟铃声
|
||||
//如果实例化播放器类存在,执行操作
|
||||
//否则,跳过此方法
|
||||
/*
|
||||
* 该方法实现了停止闹钟铃声
|
||||
* 如果实例化播放器类存在,执行操作
|
||||
* 否则,跳过此方法
|
||||
* */
|
||||
|
||||
private void stopAlarmSound() {
|
||||
if (mPlayer != null) {
|
||||
mPlayer.stop();
|
||||
|
|
|
@ -33,19 +33,25 @@ public class CheckBoxAdapter extends BaseAdapter{
|
|||
this.layoutInflater=LayoutInflater.from(context);
|
||||
}
|
||||
|
||||
//获取待办数量的方法,返回值类型-int
|
||||
/*
|
||||
* 获取待办数量的方法,返回值类型-int
|
||||
* */
|
||||
@Override
|
||||
public int getCount() {
|
||||
return list.size();
|
||||
}
|
||||
|
||||
//获取待办项的方法,返回值类型,<string,boolean>
|
||||
/*
|
||||
* 获取待办项的方法,返回值类型,<string,boolean>
|
||||
* */
|
||||
@Override
|
||||
public Object getItem(int position) {
|
||||
return list.get(position);
|
||||
}
|
||||
|
||||
//获取位置的方法
|
||||
/*
|
||||
* 获取位置的方法
|
||||
* */
|
||||
@Override
|
||||
public long getItemId(int position) {
|
||||
return position;
|
||||
|
|
|
@ -232,20 +232,20 @@ public class DateTimePicker extends FrameLayout {
|
|||
return mIsEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Get the current date in millis
|
||||
*
|
||||
* @return the current date in millis
|
||||
*/
|
||||
* */
|
||||
public long getCurrentDateInTimeMillis() {
|
||||
return mDate.getTimeInMillis();
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Set the current date
|
||||
*
|
||||
* @param date The current date in millis
|
||||
*/
|
||||
* */
|
||||
public void setCurrentDate(long date) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTimeInMillis(date);
|
||||
|
@ -253,7 +253,7 @@ public class DateTimePicker extends FrameLayout {
|
|||
cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE));
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Set the current date
|
||||
*
|
||||
* @param year The current year
|
||||
|
@ -261,7 +261,7 @@ public class DateTimePicker extends FrameLayout {
|
|||
* @param dayOfMonth The current dayOfMonth
|
||||
* @param hourOfDay The current hourOfDay
|
||||
* @param minute The current minute
|
||||
*/
|
||||
* */
|
||||
public void setCurrentDate(int year, int month,
|
||||
int dayOfMonth, int hourOfDay, int minute) {
|
||||
setCurrentYear(year);
|
||||
|
@ -271,20 +271,19 @@ public class DateTimePicker extends FrameLayout {
|
|||
setCurrentMinute(minute);
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Get current year
|
||||
*
|
||||
* @return The current year
|
||||
*/
|
||||
* */
|
||||
public int getCurrentYear() {
|
||||
return mDate.get(Calendar.YEAR);
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Set current year
|
||||
*
|
||||
* @param year The current year
|
||||
*/
|
||||
* */
|
||||
public void setCurrentYear(int year) {
|
||||
if (!mInitialising && year == getCurrentYear()) {
|
||||
return;
|
||||
|
@ -294,20 +293,18 @@ public class DateTimePicker extends FrameLayout {
|
|||
onDateTimeChanged();
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Get current month in the year
|
||||
*
|
||||
* @return The current month in the year
|
||||
*/
|
||||
* */
|
||||
public int getCurrentMonth() {
|
||||
return mDate.get(Calendar.MONTH);
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Set current month in the year
|
||||
*
|
||||
* @param month The month in the year
|
||||
*/
|
||||
* */
|
||||
public void setCurrentMonth(int month) {
|
||||
if (!mInitialising && month == getCurrentMonth()) {
|
||||
return;
|
||||
|
@ -317,20 +314,18 @@ public class DateTimePicker extends FrameLayout {
|
|||
onDateTimeChanged();
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Get current day of the month
|
||||
*
|
||||
* @return The day of the month
|
||||
*/
|
||||
* */
|
||||
public int getCurrentDay() {
|
||||
return mDate.get(Calendar.DAY_OF_MONTH);
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Set current day of the month
|
||||
*
|
||||
* @param dayOfMonth The day of the month
|
||||
*/
|
||||
* */
|
||||
public void setCurrentDay(int dayOfMonth) {
|
||||
if (!mInitialising && dayOfMonth == getCurrentDay()) {
|
||||
return;
|
||||
|
@ -340,10 +335,10 @@ public class DateTimePicker extends FrameLayout {
|
|||
onDateTimeChanged();
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Get current hour in 24 hour mode, in the range (0~23)
|
||||
* @return The current hour in 24 hour mode
|
||||
*/
|
||||
* */
|
||||
public int getCurrentHourOfDay() {
|
||||
return mDate.get(Calendar.HOUR_OF_DAY);
|
||||
}
|
||||
|
@ -361,11 +356,10 @@ public class DateTimePicker extends FrameLayout {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Set current hour in 24 hour mode, in the range (0~23)
|
||||
*
|
||||
* @param hourOfDay
|
||||
*/
|
||||
* */
|
||||
public void setCurrentHour(int hourOfDay) {
|
||||
if (!mInitialising && hourOfDay == getCurrentHourOfDay()) {
|
||||
return;
|
||||
|
@ -389,18 +383,18 @@ public class DateTimePicker extends FrameLayout {
|
|||
onDateTimeChanged();
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Get currentMinute
|
||||
*
|
||||
* @return The Current Minute
|
||||
*/
|
||||
* */
|
||||
public int getCurrentMinute() {
|
||||
return mDate.get(Calendar.MINUTE);
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Set current minute
|
||||
*/
|
||||
* */
|
||||
public void setCurrentMinute(int minute) {
|
||||
if (!mInitialising && minute == getCurrentMinute()) {
|
||||
return;
|
||||
|
@ -410,18 +404,18 @@ public class DateTimePicker extends FrameLayout {
|
|||
onDateTimeChanged();
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* @return true if this is in 24 hour view else false.
|
||||
*/
|
||||
* */
|
||||
public boolean is24HourView () {
|
||||
return mIs24HourView;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Set whether in 24 hour or AM/PM mode.
|
||||
*
|
||||
* @param is24HourView True for 24 hour mode. False for AM/PM mode.
|
||||
*/
|
||||
* */
|
||||
public void set24HourView(boolean is24HourView) {
|
||||
if (mIs24HourView == is24HourView) {
|
||||
return;
|
||||
|
@ -468,10 +462,10 @@ public class DateTimePicker extends FrameLayout {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Set the callback that indicates the 'Set' button has been pressed.
|
||||
* @param callback the callback, if null will do nothing
|
||||
*/
|
||||
* */
|
||||
public void setOnDateTimeChangedListener(OnDateTimeChangedListener callback) {
|
||||
mOnDateTimeChangedListener = callback;
|
||||
}
|
||||
|
|
|
@ -80,9 +80,9 @@ import java.util.regex.Pattern;
|
|||
|
||||
import jp.wasabeef.richeditor.RichEditor;
|
||||
|
||||
/**
|
||||
* 该类实现了便签编辑功能的实现
|
||||
*/
|
||||
/*
|
||||
* 该类实现了便签编辑功能的实现
|
||||
* */
|
||||
public class NoteEditActivity extends Activity implements OnClickListener,
|
||||
OnInitListener, NoteSettingChangedListener, OnTextViewChangeListener {
|
||||
private class HeadViewHolder {
|
||||
|
@ -95,7 +95,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
//设置背景色
|
||||
public ImageView ibSetBgColor;
|
||||
}
|
||||
//ResourceParser - tools\ResourceParser.java中的类,用于解析界面元素
|
||||
//解析界面元素
|
||||
private static final Map<Integer, Integer> sBgSelectorBtnsMap = new HashMap<Integer, Integer>();
|
||||
static {
|
||||
//向R文件中放入一系列颜色资源与id
|
||||
|
@ -188,27 +188,27 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}
|
||||
|
||||
private void initButtons(){
|
||||
/**
|
||||
/*
|
||||
* 撤销当前标签状态下所有内容
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_undo).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mNoteEditor.undo();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 恢复撤销的内容
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_redo).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mNoteEditor.redo();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 加粗
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_bold).setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
|
@ -217,9 +217,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
mNoteEditor.setBold();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 斜体
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_italic).setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
|
@ -228,9 +228,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
mNoteEditor.setItalic();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 下角标
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_subscript).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -241,9 +241,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
mNoteEditor.setSubscript();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 上角标
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_superscript).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -255,9 +255,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}
|
||||
});
|
||||
|
||||
/**
|
||||
/*
|
||||
* 删除线
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_strikethrough).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -265,9 +265,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
mNoteEditor.setStrikeThrough();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
*下划线
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_underline).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -275,9 +275,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
mNoteEditor.setUnderline();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 设置标题(1到6)
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_heading1).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -319,9 +319,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
mNoteEditor.setHeading(6);
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 设置字体颜色
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_txt_color).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -333,19 +333,24 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
switch (which) {
|
||||
case 0://红
|
||||
//红
|
||||
case 0:
|
||||
mNoteEditor.setTextColor(Color.RED);
|
||||
break;
|
||||
case 1://黄
|
||||
//黄
|
||||
case 1:
|
||||
mNoteEditor.setTextColor(Color.YELLOW);
|
||||
break;
|
||||
case 2://蓝
|
||||
//蓝
|
||||
case 2:
|
||||
mNoteEditor.setTextColor(Color.GREEN);
|
||||
break;
|
||||
case 3://绿
|
||||
//绿
|
||||
case 3:
|
||||
mNoteEditor.setTextColor(Color.BLUE);
|
||||
break;
|
||||
case 4://黑
|
||||
//黑
|
||||
case 4:
|
||||
mNoteEditor.setTextColor(Color.BLACK);
|
||||
break;
|
||||
}
|
||||
|
@ -364,24 +369,30 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
switch (which) {
|
||||
case 0://红
|
||||
//红
|
||||
case 0:
|
||||
Log.e(TAG,"choose red bg color");
|
||||
mNoteEditor.setTextBackgroundColor(Color.RED);
|
||||
Log.e(TAG,"set red bg color");
|
||||
break;
|
||||
case 1://黄
|
||||
//黄
|
||||
case 1:
|
||||
mNoteEditor.setTextBackgroundColor(Color.YELLOW);
|
||||
break;
|
||||
case 2://蓝
|
||||
//蓝
|
||||
case 2:
|
||||
mNoteEditor.setTextBackgroundColor(Color.GREEN);
|
||||
break;
|
||||
case 3://绿
|
||||
//绿
|
||||
case 3:
|
||||
mNoteEditor.setTextBackgroundColor(Color.BLUE);
|
||||
break;
|
||||
case 4://黑
|
||||
//黑
|
||||
case 4:
|
||||
mNoteEditor.setTextBackgroundColor(Color.BLACK);
|
||||
break;
|
||||
case 5://透明
|
||||
//透明
|
||||
case 5:
|
||||
mNoteEditor.setTextBackgroundColor(R.color.text_bg_transparent);
|
||||
break;
|
||||
}
|
||||
|
@ -389,9 +400,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}).show();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 向右缩进
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_indent).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -399,9 +410,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
mNoteEditor.setIndent();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 向左缩进
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_outdent).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -409,9 +420,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
mNoteEditor.setOutdent();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
*文章左对齐
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_align_left).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -419,45 +430,45 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
mNoteEditor.setAlignLeft();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 文章居中对齐
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_align_center).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mNoteEditor.setAlignCenter();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 文章右对齐
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_align_right).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mNoteEditor.setAlignRight();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 无序排列
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_insert_bullets).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mNoteEditor.setBullets();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 有序排列
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_insert_numbers).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mNoteEditor.setNumbers();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 引用
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_blockquote).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -465,9 +476,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}
|
||||
});
|
||||
|
||||
/**
|
||||
/*
|
||||
* 插入图片
|
||||
*/
|
||||
* */
|
||||
final String[] mPermissionList = new String[]{
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE};
|
||||
|
@ -478,9 +489,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
mNoteEditor.focusEditor();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 插入连接
|
||||
*/
|
||||
* */
|
||||
final EditText editText = new EditText(NoteEditActivity.this);
|
||||
findViewById(R.id.action_insert_link).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
@ -497,9 +508,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}).show();
|
||||
}
|
||||
});
|
||||
/**
|
||||
/*
|
||||
* 选择框
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.action_insert_checkbox).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -508,9 +519,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}
|
||||
});
|
||||
|
||||
/**
|
||||
/*
|
||||
* 获取并显示Html
|
||||
*/
|
||||
* */
|
||||
findViewById(R.id.tv_showhtml).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -539,7 +550,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}
|
||||
}
|
||||
|
||||
//该方法用于获取图片uri
|
||||
/*
|
||||
* 该方法用于获取图片uri
|
||||
* */
|
||||
private void getImage() {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
|
||||
startActivityForResult(new Intent(Intent.ACTION_GET_CONTENT).setType("image/*"),
|
||||
|
@ -552,8 +565,11 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}
|
||||
}
|
||||
|
||||
//该方法用于处理返回的图片
|
||||
//@data 选择图片的uri
|
||||
/*
|
||||
* 该方法用于处理返回的图片
|
||||
* @data 选择图片的uri
|
||||
* */
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
@ -565,7 +581,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
String realPathFromUri = RealPathFromUriUtils.getRealPathFromUri(this, data.getData());
|
||||
//插入图片
|
||||
mNoteEditor.insertImage(realPathFromUri, realPathFromUri + "\" style=\"max-width:100%");
|
||||
// mEditor.insertImage(realPathFromUri, realPathFromUri + "\" style=\"max-width:100%;max-height:100%");
|
||||
//mEditor.insertImage(realPathFromUri, realPathFromUri + "\" style=\"max-width:100%;max-height:100%");
|
||||
|
||||
} else {
|
||||
Toast.makeText(this, "图片损坏,请重新选择", Toast.LENGTH_SHORT).show();
|
||||
|
@ -575,7 +591,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}
|
||||
}
|
||||
|
||||
//该方法用于对语音模块的初始化
|
||||
/*
|
||||
* 该方法用于对语音模块的初始化
|
||||
* */
|
||||
@Override
|
||||
public void onInit(int status){
|
||||
// 判断是否转化成功
|
||||
|
@ -591,10 +609,10 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Current activity may be killed when the memory is low. Once it is killed, for another time
|
||||
* user load this activity, we should restore the former state
|
||||
*/
|
||||
* */
|
||||
@Override
|
||||
protected void onRestoreInstanceState(Bundle savedInstanceState) {
|
||||
super.onRestoreInstanceState(savedInstanceState);
|
||||
|
@ -611,19 +629,21 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
Log.d(TAG, "Restoring from killed activity");
|
||||
}
|
||||
}
|
||||
//该方法用于初始化activity的状态,重启activity
|
||||
/*
|
||||
* 该方法用于初始化activity的状态,重启activity
|
||||
* */
|
||||
private boolean initActivityState(Intent intent) {
|
||||
/**
|
||||
/*
|
||||
* If the user specified the {@link Intent#ACTION_VIEW} but not provided with id,
|
||||
* then jump to the NotesListActivity
|
||||
*/
|
||||
* */
|
||||
mWorkingNote = null;
|
||||
if (TextUtils.equals(Intent.ACTION_VIEW, intent.getAction())) {
|
||||
long noteId = intent.getLongExtra(Intent.EXTRA_UID, 0);
|
||||
mUserQuery = "";
|
||||
/**
|
||||
/*
|
||||
* 从搜索结果启动
|
||||
*/
|
||||
* */
|
||||
if (intent.hasExtra(SearchManager.EXTRA_DATA_KEY)) {
|
||||
noteId = Long.parseLong(intent.getStringExtra(SearchManager.EXTRA_DATA_KEY));
|
||||
mUserQuery = intent.getStringExtra(SearchManager.USER_QUERY);
|
||||
|
@ -697,7 +717,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
initNoteScreen();
|
||||
}
|
||||
|
||||
//该方法实现了计算便签长度,过滤掉不必要的长度计数
|
||||
/*
|
||||
* 该方法实现了计算便签长度,过滤掉不必要的长度计数
|
||||
* */
|
||||
private int calNoteLength(String content){
|
||||
Log.e(TAG,content);
|
||||
//从html中提取纯文本
|
||||
|
@ -706,7 +728,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
|
||||
}
|
||||
|
||||
//该方法用于获取HTML中的纯文本
|
||||
/*
|
||||
* 该方法用于获取HTML中的纯文本
|
||||
* */
|
||||
public String getPureText(String content){
|
||||
String htmlStr = content; // 含html标签的字符串
|
||||
String textStr = "";
|
||||
|
@ -754,10 +778,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}
|
||||
mNoteEditor.setHtml(mText);
|
||||
|
||||
//设置光标位置
|
||||
//todo:
|
||||
//mNoteEditor.setSelection(mNoteEditor.getText().length());
|
||||
|
||||
//设置光标位
|
||||
for (Integer id : sBgSelectorSelectionMap.keySet()) {
|
||||
findViewById(sBgSelectorSelectionMap.get(id)).setVisibility(View.GONE);
|
||||
}
|
||||
|
@ -771,14 +792,12 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
mNoteHeaderHolder.tvModified.setText(mFormateDataTime
|
||||
+ mTitleSpace +getResources().getString(R.string.note_length) + " : "
|
||||
+ mNoteLength);
|
||||
/*
|
||||
* TODO: Add the menu for setting alert. Currently disable it because the DateTimePicker
|
||||
* is not ready
|
||||
*/
|
||||
showAlertHeader();
|
||||
}
|
||||
|
||||
//该方法用于初始化富文本编辑参数
|
||||
/*
|
||||
* 该方法用于初始化富文本编辑参数
|
||||
* */
|
||||
public void initRichEditor(){
|
||||
//初始化编辑高度
|
||||
mNoteEditor.setEditorHeight(200);
|
||||
|
@ -786,14 +805,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
mNoteEditor.setEditorFontSize(22);
|
||||
//初始化字体颜色
|
||||
mNoteEditor.setEditorFontColor(Color.BLACK);
|
||||
|
||||
//mNoteEditor.setEditorBackgroundColor(Color.BLUE);
|
||||
|
||||
//初始化内边距
|
||||
mNoteEditor.setPadding(5, 5, 5, 5);
|
||||
//设置编辑框背景,可以是网络图片
|
||||
//mNoteEditor.setBackground("https://raw.githubusercontent.com/wasabeef/art/master/chip.jpg");
|
||||
//mNoteEditor.setBackgroundColor(Color.BLUE);
|
||||
mNoteEditor.setBackgroundResource(R.drawable.bg_white_board);
|
||||
//设置默认显示语句
|
||||
mNoteEditor.setPlaceholder("Insert text here...");
|
||||
|
@ -833,11 +847,11 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
@Override
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
/**
|
||||
/*
|
||||
* For new note without note id, we should firstly save it to
|
||||
* generate a id. If the editing note is not worth saving, there
|
||||
* is no id which is equivalent to create new note
|
||||
*/
|
||||
* */
|
||||
if (!mWorkingNote.existInDatabase()) {
|
||||
saveNote();
|
||||
}
|
||||
|
@ -871,7 +885,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}
|
||||
return true;
|
||||
}
|
||||
//该方法用于初始化资源
|
||||
/*
|
||||
* 该方法用于初始化资源
|
||||
* */
|
||||
private void initResources() {
|
||||
mHeadViewPanel = findViewById(R.id.note_title);
|
||||
mNoteHeaderHolder = new HeadViewHolder();
|
||||
|
@ -913,11 +929,11 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
};
|
||||
mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
mFontSizeId = mSharedPrefs.getInt(PREFERENCE_FONT_SIZE, ResourceParser.BG_DEFAULT_FONT_SIZE);
|
||||
/**
|
||||
/*
|
||||
* HACKME: Fix bug of store the resource id in shared preference.
|
||||
* The id may larger than the length of resources, in this case,
|
||||
* return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE}
|
||||
*/
|
||||
* */
|
||||
if(mFontSizeId >= TextAppearanceResources.getResourcesSize()) {
|
||||
mFontSizeId = ResourceParser.BG_DEFAULT_FONT_SIZE;
|
||||
}
|
||||
|
@ -931,7 +947,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}
|
||||
clearSettingState();
|
||||
}
|
||||
//该方法用于更新widget
|
||||
/*
|
||||
* 该方法用于更新widget
|
||||
* */
|
||||
private void updateWidget() {
|
||||
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
|
||||
if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_2X) {
|
||||
|
@ -949,7 +967,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
sendBroadcast(intent);
|
||||
setResult(RESULT_OK, intent);
|
||||
}
|
||||
//该方法用于实现点击事件处理
|
||||
/*
|
||||
* 该方法用于实现点击事件处理
|
||||
* */
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
//如果点击设置背景色
|
||||
|
@ -971,12 +991,14 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
switchToListMode(mWorkingNote.getContent());
|
||||
} else {
|
||||
//mNoteEditor.setTextAppearance(this,
|
||||
// TextAppearanceResources.getTexAppearanceResource(mFontSizeId));
|
||||
//TextAppearanceResources.getTexAppearanceResource(mFontSizeId));
|
||||
}
|
||||
mFontSizeSelector.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
//该方法在按下返回键时调用
|
||||
/*
|
||||
* 该方法在按下返回键时调用
|
||||
* */
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
//如果清空设置,直接返回,不保存
|
||||
|
@ -1022,7 +1044,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}
|
||||
return true;
|
||||
}
|
||||
//该方法用于对menu选择进行处理
|
||||
/*
|
||||
* 该方法用于对menu选择进行处理
|
||||
* */
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
|
@ -1078,7 +1102,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}
|
||||
return true;
|
||||
}
|
||||
//该方法用于设置提醒
|
||||
/*
|
||||
* 该方法用于设置提醒
|
||||
* */
|
||||
private void setReminder() {
|
||||
DateTimePickerDialog d = new DateTimePickerDialog(this, System.currentTimeMillis());
|
||||
d.setOnDateTimeSetListener(new OnDateTimeSetListener() {
|
||||
|
@ -1088,17 +1114,19 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
});
|
||||
d.show();
|
||||
}
|
||||
/**
|
||||
/*
|
||||
* Share note to apps that support {@link Intent#ACTION_SEND} action
|
||||
* and {@text/plain} type
|
||||
*/
|
||||
* */
|
||||
private void sendTo(Context context, String info) {
|
||||
Intent intent = new Intent(Intent.ACTION_SEND);
|
||||
intent.putExtra(Intent.EXTRA_TEXT, info);
|
||||
intent.setType("text/plain");
|
||||
context.startActivity(intent);
|
||||
}
|
||||
//该方法创建了一个新便签
|
||||
/*
|
||||
* 该方法创建了一个新便签
|
||||
* */
|
||||
private void createNewNote() {
|
||||
// Firstly, save current editing notes
|
||||
saveNote();
|
||||
|
@ -1135,15 +1163,17 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}
|
||||
mWorkingNote.markDeleted(true);
|
||||
}
|
||||
//判断是否为同步模式的方法
|
||||
/*
|
||||
* 判断是否为同步模式的方法
|
||||
* */
|
||||
private boolean isSyncMode() {
|
||||
return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0;
|
||||
}
|
||||
public void onClockAlertChanged(long date, boolean set) {
|
||||
/**
|
||||
/*
|
||||
* User could set clock to an unsaved note, so before setting the
|
||||
* alert clock, we should save the note first
|
||||
*/
|
||||
* */
|
||||
if (!mWorkingNote.existInDatabase()) {
|
||||
saveNote();
|
||||
}
|
||||
|
@ -1159,11 +1189,11 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
alarmManager.set(AlarmManager.RTC_WAKEUP, date, pendingIntent);
|
||||
}
|
||||
} else {
|
||||
/**
|
||||
/*
|
||||
* There is the condition that user has input nothing (the note is
|
||||
* not worthy saving), we have no note id, remind the user that he
|
||||
* should input something
|
||||
*/
|
||||
* */
|
||||
Log.e(TAG, "Clock alert setting error");
|
||||
//显示提示信息
|
||||
showToast(R.string.error_note_empty_for_clock);
|
||||
|
@ -1199,9 +1229,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
edit.setSelection(length);
|
||||
}
|
||||
public void onEditTextEnter(int index, String text) {
|
||||
/**
|
||||
/*
|
||||
* Should not happen, check for debug
|
||||
*/
|
||||
* */
|
||||
if(index > mEditTextList.getChildCount()) {
|
||||
Log.e(TAG, "Index out of mEditTextList boundrary, should not happen");
|
||||
}
|
||||
|
@ -1287,8 +1317,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
}
|
||||
public void onCheckListModeChanged(int oldMode, int newMode) {
|
||||
if (newMode == TextNote.MODE_CHECK_LIST) {
|
||||
//将模式转换为列表模式
|
||||
//switchToListMode(mNoteEditor.getText().toString());
|
||||
/*
|
||||
* 将模式转换为列表模式
|
||||
* */
|
||||
} else {
|
||||
if (!getWorkingText()) {
|
||||
mWorkingNote.setWorkingText(mWorkingNote.getContent().replace(TAG_UNCHECKED + " ",
|
||||
|
@ -1325,25 +1356,27 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
getWorkingText();
|
||||
boolean saved = mWorkingNote.saveNote();
|
||||
if (saved) {
|
||||
/**
|
||||
/*
|
||||
* There are two modes from List view to edit view, open one note,
|
||||
* create/edit a node. Opening node requires to the original
|
||||
* position in the list when back from edit view, while creating a
|
||||
* new node requires to the top of the list. This code
|
||||
* {@link #RESULT_OK} is used to identify the create/edit state
|
||||
*/
|
||||
* */
|
||||
setResult(RESULT_OK);
|
||||
}
|
||||
return saved;
|
||||
}
|
||||
//该方法实现了将便签内容发送到桌面widget
|
||||
/*
|
||||
* 该方法实现了将便签内容发送到桌面widget
|
||||
* */
|
||||
private void sendToDesktop() {
|
||||
/**
|
||||
/*
|
||||
* Before send message to home, we should make sure that current
|
||||
* editing note is exists in databases. So, for new note, firstly
|
||||
* save it
|
||||
*/
|
||||
//如果没有保存到数据库,保存
|
||||
* */
|
||||
|
||||
if (!mWorkingNote.existInDatabase()) {
|
||||
saveNote();
|
||||
}
|
||||
|
@ -1362,16 +1395,18 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
showToast(R.string.info_note_enter_desktop);
|
||||
sendBroadcast(sender);
|
||||
} else {
|
||||
/**
|
||||
/*
|
||||
* There is the condition that user has input nothing (the note is
|
||||
* not worthy saving), we have no note id, remind the user that he
|
||||
* should input something
|
||||
*/
|
||||
* */
|
||||
Log.e(TAG, "Send to desktop error");
|
||||
showToast(R.string.error_note_empty_for_send_to_desktop);
|
||||
}
|
||||
}
|
||||
//该方法用于截取标题头
|
||||
/*
|
||||
* 该方法用于截取标题头
|
||||
* */
|
||||
private String makeShortcutIconTitle(String content) {
|
||||
content = content.replace(TAG_CHECKED, "");
|
||||
content = content.replace(TAG_UNCHECKED, "");
|
||||
|
@ -1381,7 +1416,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|||
private void showToast(int resId) {
|
||||
showToast(resId, Toast.LENGTH_SHORT);
|
||||
}
|
||||
//该方法用于显示toast提示
|
||||
/*
|
||||
* 该方法用于显示toast提示
|
||||
* */
|
||||
private void showToast(int resId, int duration) {
|
||||
Toast.makeText(this, resId, duration).show();
|
||||
}
|
||||
|
|
|
@ -53,20 +53,20 @@ public class NoteEditText extends EditText {
|
|||
sSchemaActionResMap.put(SCHEME_EMAIL, R.string.note_link_email);
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Call by the {@link NoteEditActivity} to delete or add edit text
|
||||
*/
|
||||
* */
|
||||
public interface OnTextViewChangeListener {
|
||||
/**
|
||||
/*
|
||||
* Delete current edit text when {@link KeyEvent#KEYCODE_DEL} happens
|
||||
* and the text is null
|
||||
*/
|
||||
* */
|
||||
void onEditTextDelete(int index, String text);
|
||||
|
||||
/**
|
||||
/*
|
||||
* Add edit text after current edit text when {@link KeyEvent#KEYCODE_ENTER}
|
||||
* happen
|
||||
*/
|
||||
* */
|
||||
void onEditTextEnter(int index, String text);
|
||||
|
||||
/**
|
||||
|
|
|
@ -20,12 +20,10 @@ public class NoteFragment extends Fragment {
|
|||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
//TextView textView = new TextView(getActivity());
|
||||
|
||||
LinearLayout layout = new LinearLayout(getActivity());
|
||||
//ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
||||
//layout.addView(textView, params);
|
||||
|
||||
return layout;
|
||||
//return inflater.inflate(R.layout.note_list, container, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -171,9 +171,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
|
|||
//初始化资源
|
||||
initResources();
|
||||
|
||||
/**
|
||||
/*
|
||||
* Insert an introduction when user firstly use this application
|
||||
*/
|
||||
* */
|
||||
setAppInfoFromRawRes();
|
||||
}
|
||||
|
||||
|
@ -217,7 +217,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
|
|||
}
|
||||
}
|
||||
|
||||
//第一次使用时,根据raw资源中的信息设置APP信息,添加介绍
|
||||
/*
|
||||
* 第一次使用时,根据raw资源中的信息设置APP信息,添加介绍
|
||||
* */
|
||||
private void setAppInfoFromRawRes() {
|
||||
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
if (!sp.getBoolean(PREFERENCE_ADD_INTRODUCTION, false)) {
|
||||
|
@ -269,7 +271,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
|
|||
}
|
||||
}
|
||||
|
||||
//重写onStart方法,activity可见
|
||||
/*
|
||||
* 重写onStart方法,activity可见
|
||||
* */
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
|
@ -277,7 +281,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
|
|||
startAsyncNotesListQuery();
|
||||
}
|
||||
|
||||
//初始化变量
|
||||
/*
|
||||
* 初始化变量
|
||||
* */
|
||||
private void initResources() {
|
||||
mContentResolver = this.getContentResolver();
|
||||
mBackgroundQueryHandler = new BackgroundQueryHandler(this.getContentResolver());
|
||||
|
@ -344,7 +350,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
|
|||
return true;
|
||||
}
|
||||
|
||||
//更新菜单栏操作的私有方法
|
||||
/*
|
||||
* 更新菜单栏操作的私有方法
|
||||
* */
|
||||
private void updateMenu() {
|
||||
//获取选中的便签数量
|
||||
int selectedCount = mNotesListAdapter.getSelectedCount();
|
||||
|
@ -383,12 +391,14 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
|
|||
public void finishActionMode() {
|
||||
mActionMode.finish();
|
||||
}
|
||||
|
||||
/*
|
||||
* 在选中项目更改后更新
|
||||
* */
|
||||
public void onItemCheckedStateChanged(ActionMode mode, int position, long id,
|
||||
boolean checked) {
|
||||
mNotesListAdapter.setCheckedItem(position, checked);
|
||||
updateMenu();
|
||||
}//在选中项目更改后更新
|
||||
}
|
||||
|
||||
//对菜单点击进行响应
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
|
@ -445,22 +455,12 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
|
|||
int newNoteViewHeight = mAddNewNote.getHeight();
|
||||
int start = screenHeight - newNoteViewHeight;
|
||||
int eventY = start + (int) event.getY();
|
||||
/**
|
||||
* Minus TitleBar's height
|
||||
*/
|
||||
// Minus TitleBar's height
|
||||
if (mState == ListEditState.SUB_FOLDER) {
|
||||
eventY -= mTitleBar.getHeight();
|
||||
start -= mTitleBar.getHeight();
|
||||
}
|
||||
/**
|
||||
* HACKME:When click the transparent part of "New Note" button, dispatch
|
||||
* the event to the list view behind this button. The transparent part of
|
||||
* "New Note" button could be expressed by formula y=-0.12x+94(Unit:pixel)
|
||||
* and the line top of the button. The coordinate based on left of the "New
|
||||
* Note" button. The 94 represents maximum height of the transparent part.
|
||||
* Notice that, if the background of the button changes, the formula should
|
||||
* also change. This is very bad, just for the UI designer's strong requirement.
|
||||
*/
|
||||
|
||||
if (event.getY() < (event.getX() * (-0.12) + 94)) {
|
||||
View view = mNotesListView.getChildAt(mNotesListView.getChildCount() - 1
|
||||
- mNotesListView.getFooterViewsCount());
|
||||
|
@ -680,7 +680,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
|
|||
mTitleBar.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
//界面视图下点击操作
|
||||
/*
|
||||
* 界面视图下点击操作
|
||||
* */
|
||||
public void onClick(View v) {
|
||||
//对点击的id进行区分
|
||||
switch (v.getId()) {
|
||||
|
@ -707,7 +709,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
|
|||
}
|
||||
}
|
||||
|
||||
//隐藏输入键盘
|
||||
/*
|
||||
* 隐藏输入键盘
|
||||
* */
|
||||
private void hideSoftInput(View view) {
|
||||
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
|
||||
|
@ -788,9 +792,8 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
|
|||
if (TextUtils.isEmpty(etName.getText())) {
|
||||
positive.setEnabled(false);
|
||||
}
|
||||
/**
|
||||
* 当未输入名称时,ok键为灰色
|
||||
*/
|
||||
//当未输入名称时,ok键为灰色
|
||||
|
||||
etName.addTextChangedListener(new TextWatcher() {
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
// TODO Auto-generated method stub
|
||||
|
@ -845,7 +848,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
|
|||
}
|
||||
}
|
||||
|
||||
//更新widget的方法,根据appWidgetId设置widget形式
|
||||
/*
|
||||
*更新widget的方法,根据appWidgetId设置widget形式
|
||||
* */
|
||||
private void updateWidget(int appWidgetId, int appWidgetType) {
|
||||
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
|
||||
if (appWidgetType == Notes.TYPE_WIDGET_2X) {
|
||||
|
@ -1059,7 +1064,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
|
|||
}.execute();
|
||||
}
|
||||
|
||||
//判断是否位于同步模式的私有方法
|
||||
/*
|
||||
* 判断是否位于同步模式的私有方法
|
||||
* */
|
||||
private boolean isSyncMode() {
|
||||
return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0;
|
||||
}
|
||||
|
@ -1127,8 +1134,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
|
|||
selection = (mState == ListEditState.NOTE_LIST) ? selection:
|
||||
"(" + selection + ") OR (" + NoteColumns.ID + "=" + Notes.ID_ROOT_FOLDER + ")";
|
||||
|
||||
//后台查询句柄
|
||||
//结果以最近修改时间排序
|
||||
//后台查询句柄,结果以最近修改时间排序
|
||||
mBackgroundQueryHandler.startQuery(FOLDER_LIST_QUERY_TOKEN,
|
||||
null,
|
||||
Notes.CONTENT_NOTE_URI,
|
||||
|
|
|
@ -84,18 +84,24 @@ public class NotesListAdapter extends CursorAdapter {
|
|||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
//判断是否在选择模式下
|
||||
/*
|
||||
* 判断是否在选择模式下
|
||||
* */
|
||||
public boolean isInChoiceMode() {
|
||||
return mChoiceMode;
|
||||
}
|
||||
|
||||
//设置选择模式,清空选中的索引值
|
||||
/*
|
||||
* 设置选择模式,清空选中的索引值
|
||||
* */
|
||||
public void setChoiceMode(boolean mode) {
|
||||
mSelectedIndex.clear();
|
||||
mChoiceMode = mode;
|
||||
}
|
||||
|
||||
//全选
|
||||
/*
|
||||
* 全选
|
||||
* */
|
||||
public void selectAll(boolean checked) {
|
||||
Cursor cursor = getCursor();
|
||||
for (int i = 0; i < getCount(); i++) {
|
||||
|
@ -146,7 +152,9 @@ public class NotesListAdapter extends CursorAdapter {
|
|||
return itemSet;
|
||||
}
|
||||
|
||||
//获取选中次数,即哈希表mSelectedIndex的长度
|
||||
/*
|
||||
* 获取选中次数,即哈希表mSelectedIndex的长度
|
||||
* */
|
||||
public int getSelectedCount() {
|
||||
Collection<Boolean> values = mSelectedIndex.values();
|
||||
if (null == values) {
|
||||
|
@ -162,13 +170,17 @@ public class NotesListAdapter extends CursorAdapter {
|
|||
return count;
|
||||
}
|
||||
|
||||
//判断是否全选
|
||||
/*
|
||||
* 判断是否全选
|
||||
* */
|
||||
public boolean isAllSelected() {
|
||||
int checkedCount = getSelectedCount();
|
||||
return (checkedCount != 0 && checkedCount == mNotesCount);
|
||||
}
|
||||
|
||||
//判断是否选中
|
||||
/*
|
||||
* 判断是否选中
|
||||
* */
|
||||
public boolean isSelectedItem(final int position) {
|
||||
//该位置没有选中
|
||||
if (null == mSelectedIndex.get(position)) {
|
||||
|
|
|
@ -92,8 +92,10 @@ public class NotesPreferenceActivity extends PreferenceActivity {
|
|||
protected void onResume() {
|
||||
super.onResume();
|
||||
|
||||
// need to set sync account automatically if user has added a new
|
||||
// account
|
||||
/*
|
||||
* need to set sync account automatically
|
||||
* if user has added a new account
|
||||
* */
|
||||
if (mHasAddedAccount) {
|
||||
Account[] accounts = getGoogleAccounts();
|
||||
if (mOriAccounts != null && accounts.length > mOriAccounts.length) {
|
||||
|
@ -112,7 +114,6 @@ public class NotesPreferenceActivity extends PreferenceActivity {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
refreshUI();
|
||||
}
|
||||
|
||||
|
@ -138,8 +139,10 @@ public class NotesPreferenceActivity extends PreferenceActivity {
|
|||
// the first time to set account
|
||||
showSelectAccountAlertDialog();
|
||||
} else {
|
||||
// if the account has already been set, we need to promp
|
||||
// user about the risk
|
||||
/*
|
||||
* if the account has already been set,
|
||||
* we need to promp user about the risk
|
||||
* */
|
||||
showChangeAccountConfirmAlertDialog();
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -13,13 +13,12 @@ import android.provider.MediaStore;
|
|||
* 该类实现了根据uri获取绝对路径
|
||||
* */
|
||||
public class RealPathFromUriUtils {
|
||||
/**
|
||||
/*
|
||||
* 根据Uri获取图片的绝对路径
|
||||
*
|
||||
* @param context 上下文对象
|
||||
* @param uri 图片的Uri
|
||||
* @return 如果Uri对应的图片存在, 那么返回该图片的绝对路径, 否则返回null
|
||||
*/
|
||||
* */
|
||||
public static String getRealPathFromUri(Context context, Uri uri) {
|
||||
int sdkVersion = Build.VERSION.SDK_INT;
|
||||
if (sdkVersion >= 19) { // api >= 19
|
||||
|
@ -29,24 +28,22 @@ public class RealPathFromUriUtils {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 适配api19以下(不包括api19),根据uri获取图片的绝对路径
|
||||
*
|
||||
/*
|
||||
* 根据uri获取图片的绝对路径
|
||||
* @param context 上下文对象
|
||||
* @param uri 图片的Uri
|
||||
* @return 如果Uri对应的图片存在, 那么返回该图片的绝对路径, 否则返回null
|
||||
*/
|
||||
* */
|
||||
private static String getRealPathFromUriBelowAPI19(Context context, Uri uri) {
|
||||
return getDataColumn(context, uri, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 适配api19及以上,根据uri获取图片的绝对路径
|
||||
*
|
||||
/*
|
||||
* 根据uri获取图片的绝对路径
|
||||
* @param context 上下文对象
|
||||
* @param uri 图片的Uri
|
||||
* @return 如果Uri对应的图片存在, 那么返回该图片的绝对路径, 否则返回null
|
||||
*/
|
||||
* */
|
||||
@SuppressLint("NewApi")
|
||||
private static String getRealPathFromUriAboveApi19(Context context, Uri uri) {
|
||||
String filePath = null;
|
||||
|
@ -74,11 +71,10 @@ public class RealPathFromUriUtils {
|
|||
return filePath;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* 获取数据库表中的 _data 列,即返回Uri对应的文件路径
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
* */
|
||||
private static String getDataColumn(Context context, Uri uri, String selection, String[] selectionArgs) {
|
||||
String path = null;
|
||||
|
||||
|
@ -98,18 +94,18 @@ public class RealPathFromUriUtils {
|
|||
return path;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* @param uri the Uri to check
|
||||
* @return Whether the Uri authority is MediaProvider
|
||||
*/
|
||||
* */
|
||||
private static boolean isMediaDocument(Uri uri) {
|
||||
return "com.android.providers.media.documents".equals(uri.getAuthority());
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* @param uri the Uri to check
|
||||
* @return Whether the Uri authority is DownloadsProvider
|
||||
*/
|
||||
* */
|
||||
private static boolean isDownloadsDocument(Uri uri) {
|
||||
return "com.android.providers.downloads.documents".equals(uri.getAuthority());
|
||||
}
|
||||
|
|
|
@ -12,20 +12,24 @@ public class TabListener<T extends Fragment> implements ActionBar.TabListener {
|
|||
private final String mTag;
|
||||
private final Class<T> mClass;
|
||||
|
||||
/** Constructor used each time a new tab is created.
|
||||
/* Constructor used each time a new tab is created.
|
||||
* @param activity The host Activity, used to instantiate the fragment
|
||||
* @param tag The identifier tag for the fragment
|
||||
* @param clz The fragment's Class, used to instantiate the fragment
|
||||
*/
|
||||
* */
|
||||
public TabListener(Activity activity, String tag, Class<T> clz) {
|
||||
mActivity = activity;
|
||||
mTag = tag;
|
||||
mClass = clz;
|
||||
}
|
||||
|
||||
/* The following are each of the ActionBar.TabListener callbacks */
|
||||
/*
|
||||
* The following are each of the ActionBar.TabListener callbacks
|
||||
* */
|
||||
|
||||
//该方法在Tab被选中时调用,一般用于实例化fragment
|
||||
/*
|
||||
* 该方法在Tab被选中时调用,一般用于实例化fragment
|
||||
* */
|
||||
public void onTabSelected(Tab tab, FragmentTransaction ft) {
|
||||
// 检查fragment是否已经被初始化
|
||||
if (mFragment == null) {
|
||||
|
|
|
@ -97,7 +97,9 @@ public class TodoFragment extends Fragment {
|
|||
initViews();
|
||||
}
|
||||
|
||||
//todo:读取文件,初始化mList
|
||||
/*
|
||||
* 读取文件,初始化mList
|
||||
* */
|
||||
private void initResources(){
|
||||
mList = new ArrayList<HashMap<String,Object>>();
|
||||
getTodoItem();
|
||||
|
@ -142,9 +144,9 @@ public class TodoFragment extends Fragment {
|
|||
if (TextUtils.isEmpty(etTodoText.getText())) {
|
||||
positive.setEnabled(false);
|
||||
}
|
||||
/**
|
||||
/*
|
||||
* 当未输入名称时,ok键为灰色
|
||||
*/
|
||||
* */
|
||||
etTodoText.addTextChangedListener(new TextWatcher() {
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
// TODO Auto-generated method stub
|
||||
|
@ -176,7 +178,9 @@ public class TodoFragment extends Fragment {
|
|||
});
|
||||
}
|
||||
|
||||
//显示输入软键盘
|
||||
/*
|
||||
* 显示输入软键盘
|
||||
* */
|
||||
private void showSoftInput(){
|
||||
//显示键盘
|
||||
InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
|
@ -185,7 +189,9 @@ public class TodoFragment extends Fragment {
|
|||
inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
|
||||
}
|
||||
}
|
||||
//隐藏输入键盘
|
||||
/*
|
||||
* 隐藏输入键盘
|
||||
* */
|
||||
private void hideSoftInput(View view){
|
||||
InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
|
||||
|
|
|
@ -25,7 +25,9 @@ import java.io.File;
|
|||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
|
||||
//该类实现了画板功能
|
||||
/*
|
||||
* 该类实现了画板功能
|
||||
* */
|
||||
public class WhiteBoardFragment extends Fragment {
|
||||
|
||||
private ImageView iv;
|
||||
|
@ -190,19 +192,21 @@ public class WhiteBoardFragment extends Fragment {
|
|||
}
|
||||
|
||||
public void setBitmap() {
|
||||
// 加载画画板的背景图
|
||||
//加载画画板的背景图
|
||||
bitsrc = BitmapFactory.decodeResource(getResources(), R.drawable.bg_white_board);
|
||||
// 创建图片副本
|
||||
// 1.在内存中创建一个与原图一模一样大小的bitmap对象,创建与原图大小一致的白纸
|
||||
/*
|
||||
* 创建图片副本
|
||||
* 在内存中创建一个与原图一模一样大小的bitmap对象,创建与原图大小一致的白纸
|
||||
* */
|
||||
bitcopy = Bitmap.createBitmap(bitsrc.getWidth(), bitsrc.getHeight(),
|
||||
bitsrc.getConfig());
|
||||
// 2.创建画笔对象
|
||||
//创建画笔对象
|
||||
paint = new Paint();
|
||||
// 3.创建画板对象,把白纸铺在画板上
|
||||
//创建画板对象,把白纸铺在画板上
|
||||
canvas = new Canvas(bitcopy);
|
||||
// 4.开始作画,把原图的内容绘制在白纸上
|
||||
//开始作画,把原图的内容绘制在白纸上
|
||||
canvas.drawBitmap(bitsrc, new Matrix(), paint);
|
||||
// 5.将绘制的图放入imageview中
|
||||
//将绘制的图放入imageview中
|
||||
iv.setImageBitmap(bitcopy);
|
||||
}
|
||||
|
||||
|
@ -217,7 +221,7 @@ public class WhiteBoardFragment extends Fragment {
|
|||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
// 发送sd卡就绪广播
|
||||
//发送sd卡就绪广播
|
||||
Intent intent = new Intent();
|
||||
intent.setAction(Intent.ACTION_MEDIA_MOUNTED);
|
||||
intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory()));
|
||||
|
|
|
@ -38,7 +38,9 @@ public class WhiteBoardView extends SurfaceView implements Callback,OnTouchListe
|
|||
//添加触摸监听事件
|
||||
setOnTouchListener(this);
|
||||
}
|
||||
//定义绘画方法
|
||||
/*
|
||||
* 定义绘画方法
|
||||
* */
|
||||
public void draw() {
|
||||
//添加画布并且锁定
|
||||
Canvas canvas = getHolder().lockCanvas();
|
||||
|
@ -50,7 +52,9 @@ public class WhiteBoardView extends SurfaceView implements Callback,OnTouchListe
|
|||
getHolder().unlockCanvasAndPost(canvas);
|
||||
|
||||
}
|
||||
//定义清除画布方法
|
||||
/*
|
||||
* 定义清除画布方法
|
||||
* */
|
||||
public void clear() {
|
||||
//路径重置,清除画布
|
||||
path.reset();
|
||||
|
@ -76,17 +80,20 @@ public class WhiteBoardView extends SurfaceView implements Callback,OnTouchListe
|
|||
}
|
||||
@Override
|
||||
public boolean onTouch(View arg0, MotionEvent event) {
|
||||
// TODO Auto-generated method stub
|
||||
//判断动作事件
|
||||
switch (event.getAction()) {
|
||||
case MotionEvent.ACTION_DOWN://按下事件
|
||||
path.moveTo(event.getX(), event.getY());//获取X和Y坐标
|
||||
//按下事件
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
//获取X和Y坐标
|
||||
path.moveTo(event.getX(), event.getY());
|
||||
draw();//开始绘制
|
||||
break;
|
||||
|
||||
case MotionEvent.ACTION_MOVE://移动事件
|
||||
path.lineTo(event.getX(), event.getY());//获取移动时的x和y坐标
|
||||
draw();//开始绘制
|
||||
//移动事件
|
||||
case MotionEvent.ACTION_MOVE:
|
||||
//获取移动时的x和y坐标
|
||||
path.lineTo(event.getX(), event.getY());
|
||||
//开始绘制
|
||||
draw();
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -104,9 +104,9 @@ public abstract class NoteWidgetProvider extends AppWidgetProvider {
|
|||
RemoteViews rv = new RemoteViews(context.getPackageName(), getLayoutId());
|
||||
rv.setImageViewResource(R.id.widget_bg_image, getBgResourceId(bgId));
|
||||
intent.putExtra(Notes.INTENT_EXTRA_BACKGROUND_ID, bgId);
|
||||
/**
|
||||
/*
|
||||
* Generate the pending intent to start host for the widget
|
||||
*/
|
||||
* */
|
||||
PendingIntent pendingIntent = null;
|
||||
if (privacyMode) {
|
||||
rv.setTextViewText(R.id.widget_text,
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<resources xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">Mi Notes</string>
|
||||
<string name="community_chat_list_remove_above_cancel_send">手指上滑,取消发送</string>
|
||||
<string name="community_chat_list_remove_above_cancel_send">手指上滑,可取消发送</string>
|
||||
<string name="community_chat_list_loosen_cancel_send">松开手指,取消发送</string>
|
||||
<string name="community_chat_list_rec_voice_short">录音时间太短</string>
|
||||
<string name="community_chat_list_rec_voice_failure">录音失败!</string>
|
||||
|
|
Loading…
Reference in New Issue